月曜日から土曜日の午後 7 時から午前 9 時まで、日曜日は終日ジョブを実行します。
複数の cron 式を入力しようとしていますが、うまくいきません。誰でも私にこれの解決策を教えてもらえますか?
1. " * * 19-8 ? * MON,TUE,WED,THU,FRI,SAT "
2. " * * * ? * SUN "
月曜日から土曜日の午後 7 時から午前 9 時まで、日曜日は終日ジョブを実行します。
複数の cron 式を入力しようとしていますが、うまくいきません。誰でも私にこれの解決策を教えてもらえますか?
1. " * * 19-8 ? * MON,TUE,WED,THU,FRI,SAT "
2. " * * * ? * SUN "
Quartzを使用しているため、いくつかの異なる CronTriggers を作成し、それらすべてを必要なジョブにスケジュールできます。例 (cron 式を必要な式に変更します)
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
JobDetail job = newJob(SimpleJob.class)
.withIdentity("job1", "group1")
.build();
Set<Trigger> triggers = new HashSet<>();
CronTrigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(cronSchedule("0/20 * * * * ?"))
.build();
triggers.add(trigger1);
CronTrigger trigger2 = newTrigger()
.withIdentity("trigger2", "group1")
.withSchedule(cronSchedule("15 0/2 * * * ?"))
.build();
triggers.add(trigger2);
CronTrigger trigger3 = newTrigger()
.withIdentity("trigger3", "group1")
.withSchedule(cronSchedule("0 0/2 8-17 * * ?"))
.build();
triggers.add(trigger3);
scheduler.scheduleJob(job, triggers, false);
複数の CronExpressions で 1 つのトリガーを作成することはできません。
要件の複雑さを見て、タスクを完了するために 4 つの cron 式を作成する必要があると思います。
// 月曜日の午後 7 時から午後 12 時までのタスク
==>
* 19-24 * * 1 <YOUR_TASK>
->* – every Minute
->19-24 hours
->* – Every day
->* – Every month
->1--Mon,
//火曜日から金曜日の TASK ==>
* 00-24 * * 2-5 <YOUR_TASK>
->* – 0th Minute
-> 00-24 hours
->* – Every day
->* – Every month
->1-5 -Mon, Tue, Wed, Thu , Fri, Sat
// 土曜日の午前 9 時までのタスク ==>
* 00-09 * * 6 <YOUR_TASK>
->00 – every Minute
->00-09 – upto 9 AM
->* – Every day
->* – Every month
->6 -, Sat
//土曜日のタスク ==>
* * * * 7 <YOUR_TASK>
->* – Every minute
->00-09 – upto 9 AM
->* – Every day
->* – Every month
->6 -, Sat