4

月曜日から土曜日の午後 7 時から午前 9 時まで、日曜日は終日ジョブを実行します。

複数の cron 式を入力しようとしていますが、うまくいきません。誰でも私にこれの解決策を教えてもらえますか?

1. " * * 19-8 ? * MON,TUE,WED,THU,FRI,SAT "
2. " * * * ? * SUN "
4

5 に答える 5

5

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 つのトリガーを作成することはできません。

于 2014-10-07T13:16:56.540 に答える
0

CronMakerは、cron 式の作成を支援するユーティリティです。CronMaker は、Quartzオープン ソース スケジューラを使用します。生成された式は、Quartz cron 形式に基づいています。

この式は、タスクの開始を定義します。期間を定義しません(タスクに属します)。

-範囲を指定するために使用されます。たとえば、時間フィールドの「10-12」は、「10、11、および 12 時」を意味します。

CronTrigger チュートリアル

于 2013-04-19T18:26:22.143 に答える
0

要件の複雑さを見て、タスクを完了するために 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
于 2013-04-19T18:17:49.173 に答える