如何在春季取消计划的 Quartz 作业

2022-09-03 00:42:18

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

它将调度程序中的每个作业添加如下内容:

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

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

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

任何想法都感激地收到。


答案 1

取消计划作业的特定触发器

scheduler.unscheduleJob(triggerName, triggerGroup);

删除作业并取消计划其所有触发器

scheduler.deleteJob(jobName, jobGroup);

编号: http://www.opensymphony.com/quartz/wikidocs/UnscheduleJob.html


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

推荐