2017-10-27 40 views
1

毎週月、火曜日などの選択された日に実行される週次のcron式を作成しようとしています。これに伴い、私はそれを繰り返すすべての機能を実装する必要があります。そのトリガーは毎回繰り返されます。週ごとにcron式を生成し、n週ごとに繰り返す

例えば、私は、間隔の値が2の場合に毎週月曜日と別の週に仕事を実行しなければなりません。 間隔の値が3の場合、2週間後に毎週月曜日にこの仕事を実行する必要があります。

この機能は、毎日または毎月の場合には簡単に実現できますが、週に1回は見つけられません。例えば、 。毎日のためのCronと3ごとに繰り返す3 0 0 12 1/3 *? *

答えて

1

これはcron式では実行できません。

あなたの最善の策は、あなたが、トリガーが起こることを望ん週間で間隔を指定するには、WithCalendarIntervalSchedule()メソッドを使用することです:

 ITrigger trigger = TriggerBuilder.Create() 
      .WithIdentity("trigger1", "group1") 
      .StartNow() 
      .WithCalendarIntervalSchedule(
       scheduleBuilder => scheduleBuilder.WithIntervalInWeeks(3)) 
      .Build(); 

代わりのStartNow()、あなたもStartAt()を使用する必要があり、およびへの道を見つけるだろう次の月曜日の日付を取得する(この質問からの例:Datetime - Get next tuesdayを使用)

+0

2日間週に指定し、曜日を指定しますか? –

+0

上記のソリューションでは、2つの異なるトリガーを作成する必要があります(1つは、次の月曜日に開始し、もう1つは、例えば、次の水曜日に開始します)。 – yorah

+0

https://stackoverflow.com/questions/47013626/scheduling-trigger-using-method-triggerbuilder-startatdatetime-datetime-causinのヘルプは素晴らしいでしょう。 –

0

http://www.cronmaker.com/ このような(または類似の)ページは、たとえば14日ごとに設定すると役立ちます。

+0

毎日の場合とは異なり、毎週のオプションはありません。毎日1日ごと –

関連する問題