日期:2014-05-20  浏览次数:20645 次

立即停止定时任务
各位大侠,请教一个关于定时任务的问题。

需求大致如下:当一个定时任务正在运行时,强行将其停止,类似于abort和terminate的作用,不让其继续执行完毕。如果不能做到,那就返回一个信息,说明某某任务正在运行或已经停止之类的。总之,就是对定时任务的当前状态要非常清楚。

我查过JDK中的Timer类和TimerTask类,它们的cancel方法都满足不了要求,定时任务会继续执行完毕,我想让它立即停掉不执行。

请问有什么好的解决方案呢?我查了spring,quartz,似乎没有满足我需要的。。。

请各位大侠指教
------解决方案--------------------

设置一个static变量A,在TimerTask的run方法中改变A的值来记录运行状态。
------解决方案--------------------
发了3贴?

看看这个:http://docs.oracle.com/cd/E17802_01/j2se/j2se/1.5.0/jcp/beta1/apidiffs/java/util/concurrent/ScheduledExecutor.html