すぐにトリガーするジョブを作成することは可能ですか? ジョブをトリガーしたいときは、現在の日付と時刻のcron式文字列を作成しました。複雑すぎると思いますが、すぐにジョブをトリガーする方法はありますか?java quartz schedulerすぐに新しいジョブを起動する
ありがとうございました。
すぐにトリガーするジョブを作成することは可能ですか? ジョブをトリガーしたいときは、現在の日付と時刻のcron式文字列を作成しました。複雑すぎると思いますが、すぐにジョブをトリガーする方法はありますか?java quartz schedulerすぐに新しいジョブを起動する
ありがとうございました。
クォーツSchedulerに登録されているすべてのジョブは、名前とグループで構成されるJobKeyによって一意に識別されます。あなたはインスタンスのtriggerJob(JobKey jobKey)を呼び出すことによって、与えられたJobKeyの仕事をすぐに発砲することができます。
//Create a new Job
JobKey jobKey = JobKey.jobKey("myNewJob", "myJobGroup");
JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity(jobKey).storeDurably().build();
//Register this job to the scheduler
scheduler.addJob(job, true);
//Immediately fire the Job MyJob.class
scheduler.triggerJob(jobKey);
注:
scheduler
は、アプリケーション全体で使用Schedulerインスタンスです。そのstart()メソッドは、作成後に既に呼び出されている必要があります。
ジョブは、トリガーまたはcronを付加できない耐久性のあるジョブです。プログラムで起動するのは、triggerJob(JobKey jobKey)です。
うん、すぐクロン式時に待っているのではなく、あなたの仕事を発射するには、以下のTrigger
を使用します。
String jobName = ""; // Your Job Name
String groupName = ""; // Your Job Group
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity(jobName, groupName)
.startNow()
.build();
メモリリークを設定するよりもずっと優れていますdurable = true;) – BrunoJCM
"JobKey"は、2つのキーの文字列値でオンザフライで作成できます。
IScheduler sched = /* however you get your scheduler*/;
sched.TriggerJob(new JobKey("myname", "mygroup"));
少なくとも簡単な説明を追加してください。 –
「SimpleTrigger」を使用せず、即時実行になる 'scheduler.scheduleJob()'を使用するのはなぜですか? – basZero
FYI JobKeyは1.5.2 APIの一部ではありません。 –
ジョブを耐久性(.storeDurably())に設定する必要がありますが、手動で(scheduler.deleteJob()を使用して)きれいにする必要があります。私は人々がこの問題にどう対処するのだろうか? – leeyuiwah