web-dev-qa-db-ja.com

SpringでスケジュールされたQuartzジョブをキャンセルする方法

Springを使用して、起動時にデータベースから構成されたジョブをロードするQuartzスケジューラー(SpringのTaskSchedulerインターフェイスで抽象化)をアプリに挿入しています。

スケジューラに各ジョブを次のように追加します。

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

私の質問はこれです:後でジョブ/トリガーをキャンセルするために使用できるjob_idのようなものを指定することは可能ですか?たとえば、ユーザーがWebインターフェイスでキャンセルするジョブを選択したことに応答して?

Springのドキュメントを確認しましたが、これを行う方法がわかりません。

どんなアイデアもありがたく受けました。

17
Steve Neal

ジョブの特定のトリガーのスケジュールを解除する

scheduler.unscheduleJob(triggerName, triggerGroup);

ジョブを削除し、そのすべてのトリガーのスケジュールを解除する

scheduler.deleteJob(jobName, jobGroup);

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

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