0

Rails サービスで、2 週間ごとに金曜日にメールを送信する定期的な仕事をしています。ただし、ビジネス要件に基づいて、「2 週間ごと」のスケジュールの最初の週は今週にする必要があります。つまり、電子メールは今週の金曜日に送信され、その後 2 週間後、その後 4 週間、というように送信されます。

サービスの再起動時にスケジュールが崩れないようにする必要があります。たとえば、電子メールが今週の金曜日に送信された後、土曜日にサービスを再開した場合、ジョブは来週の金曜日にスケジュールされるべきではなく、来週の翌週の金曜日になるはずです。つまり、週 0 は永続的で、今週に固執する必要があります。

ice_cube で実行できますか? または、他のより良い解決策はありますか?感謝!

4

1 に答える 1

0

「週 0」の設定は IceCube に組み込まれています。スケジュールを作成するときは、 ではなく開始時刻を指定してくださいTime.now

2.1.4 :012 > s = IceCube::Schedule.new(Time.now.beginning_of_month)
2.1.4 :013 > s.add_recurrence_rule IceCube::Rule.monthly.count(3)
2.1.4 :014 > s.all_occurrences
 => [2014-12-01 00:00:00 -0500, 2015-01-01 00:00:00 -0500, 2015-02-01 00:00:00 -0500] 

ここでは、IceCube にスケジュールが今月の初めに開始されることを伝えましたが、任意の値を使用することもできました。IceCube はその時刻に基づいてスケジュールを計算し、12 月 1 日、1 月 1 日、2 月 1 日を計算します。

于 2014-12-30T13:21:03.103 に答える