如何取消Quartz中的预定作业

时间:2010-11-24 17:36:10

标签: java spring quartz-scheduler

我正在使用Spring将Quartz调度程序(使用Spring的TaskScheduler接口抽象)注入到我的应用程序中,该应用程序在启动时加载从数据库配置的作业。

它在调度程序中添加了这样的每个作业:

TaskScheduler taskScheduler = ...;//injected    
Runnable runableThing = ...;
String cronExpression = ...; //from DB
taskScheduler.schedule(runableThing, new CronTrigger(cronExpression));

我的问题是:是否可以指定类似job_id的东西,随后可用于取消作业/触发器 - 比如响应用户选择要在Web界面中取消的作业?

我看过Spring文档但看不到这样做的方法。

感激地收到任何想法。

2 个答案:

答案 0 :(得分:22)

取消安排工作的特定触发

scheduler.unscheduleJob(triggerName, triggerGroup);

删除作业并取消调度其所有触发器

scheduler.deleteJob(jobName, jobGroup);

参考:http://www.opensymphony.com/quartz/wikidocs/UnscheduleJob.html

答案 1 :(得分:1)

ScheduledFuture<V> job = taskSchedule.schedule(runableThing, new CronTrigger(cronExpression))
job.cancel(true);