5

Quartzで削除トリガーを参照する

同じ問題が発生しています:名前が「schedulerJobTrigger」でグループが「group1」のトリガーを保存できません。この ID が既に存在するためです。

したがって、ジョブのスケジュールを解除することを考える前に、次のクエリがあります。

ジョブが 2 つあるとします。詳細は次のとおりです。

したがって、17:30 に実行された後にジョブ (トリガーを削除すると思われる) のスケジュールを解除し、Job2 を実行すると、スケジューラは @17:35 と 17:40 にそれぞれ実行する必要がある Job1 をどのように実行しますか (これが繰り返しです) )

ありがとう、助けてください!

上記のシナリオを試す前に、別のスケジュール @ scheduler.scheduleJob(job, trigger); で新しいジョブをスケジュールしても、それは私に例外を与えます:名前:「schedulerJobTrigger」およびグループ:「group1」のトリガーを保存できません。このIDで既に存在するためです。

4

1 に答える 1

4

解決し、同じトリガーが存在するかどうかを確認し、存在する場合は、別の ID で新しいトリガー インスタンスを作成し、コードを実行します。

boolean flag = scheduler.checkExists(trigger.getKey());
if (!flag)
{
    scheduler.start();
    scheduler.scheduleJob(job, trigger);
}
else
{
    Trigger trigger1 =TriggerBuilder.newTrigger().withIdentity("schedulerJobTrigger1", "group1").withSchedule(schedBuilder).build();;
    scheduler.start();
    scheduler.scheduleJob(job, trigger1);
}
于 2014-09-18T05:29:55.283 に答える