我正在使用Spring将Quartz调度程序(使用Spring的TaskScheduler接口抽象)注入到我的应用程序中,该应用程序在启动时加载从数据库配置的作业。
它在调度程序中添加了这样的每个作业:
TaskScheduler taskScheduler = ...;//injected
Runnable runableThing = ...;
String cronExpression = ...; //from DB
taskScheduler.schedule(runableThing, new CronTrigger(cronExpression));
我的问题是:是否可以指定类似job_id的东西,随后可用于取消作业/触发器 - 比如响应用户选择要在Web界面中取消的作业?
我看过Spring文档但看不到这样做的方法。
感激地收到任何想法。
答案 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);