0

クラスの 1 つを火曜、水曜、木曜のみに実施したいと考えています。私は次のものを持っています:

class ReminderJob

  def perform

    begin
        # Days to send: Tuesdays, Wednesdays, Thursdays
        next Date.today.wday.instance_of?('2,3,4')

火、水、木ではない場合、クラスが存在するという考えです。これをルビーで解決する方法についての提案はありますか? ありがとう

4

3 に答える 3

2

特定の日時にのみタスクを実行したい場合は、おそらくcron ジョブをスケジュールする必要があります。

特定の曜日以外は何もしないメソッドが必要な場合は、次のようにします。

return unless [ :tuesday?, :wednesday?, :thursday? ].any? { |day| Date.today.send(day) }
于 2012-10-16T18:58:53.303 に答える
1

クラス自体にスケジューリングを混在させないでください。クラスがタスクを実行するロジックを厳密に処理できるようにします。

cron を使用してスケジューリングを行います。when gem を使用して cron ジョブを作成します。特定の曜日、特定の時間帯などにのみ実行するように指定できます。

于 2012-10-16T19:07:03.997 に答える
0

あなたの質問は明確ではありませんが、あなたが本当に持っていると思う疑問に対する答えは次のとおりです。

def perform
  return if [2,3,4].include? Date.today.wday
  puts "Your job!!!"
end
于 2012-10-16T18:59:11.020 に答える