1

Heroku Scheduler から、clockwork gem を使用したカスタム クロック プロセスに移行する予定です。Heroku Scheduler は、次にスケジュールされた同じタイプのタスクの前にタスクが完了しなかった場合、そのタスクを強制終了します。Sidekiqでこれを達成するにはどうすればよいですか?

Timeout がスレッドセーフではないことを考えると。Sidekiq ワーカーでこれを行うのは悪い考えですか?

class RunsTooLongWorker
  include Sidekiq::Worker

  sidekiq_options :retry => false

  def perform(*args)
    Timeout::timeout(2.hours) do
      # do possibly long running task
    end
  end
end

そうでない場合、代替手段は何ですか?10 分ごとにジョブを実行したいが、同時に同じジョブを実行したくないとします。どのように対処すればよいですか?

4

2 に答える 2