sidekiqに、あるジョブは別のジョブに依存し、後者が終了するまで開始できないと言う方法はありますか?sidekiqに、あるジョブが別のジョブに依存していると伝える方法はありますか?
5
A
答えて
4
のためのあなたの状態テーブル内のルックアップを行うことができます:あなたはMySuperworkerを実行すると
# config/initializers/superworkers.rb
Superworker.create(:MySuperworker, :user_id) do
Worker1 :user_id
Worker2 :user_id
end
# Anywhere
MySuperworker.perform_async(123)
を、Worker1が開始されます。作業が終了すると、Worker2が起動します。これにより、従属グラフを従業員自身から分離することができます。 (免責事項:私は宝石の著者です)
5
サイドキーのみを使用してください。答えはノーだろう。 DickieBoyが示唆しているように、従属ジョブが完了したらすぐにそれを蹴ることができます。このようなもの。
# app/workers/hard_worker.rb
class HardWorker
include Sidekiq::Worker
def perform()
puts 'Doing hard work'
LazyWorker.perform_async()
end
end
# app/workers/lazy_worker.rb
class LazyWorker
include Sidekiq::Worker
def perform(name, count)
puts "Guess it's time I do something"
end
end
ここで、LazyWorkerはHardWorkerの最後でのみ実行されます。これが必ずしも必要でない場合は、追加のロジックを追加することができます。必要に応じて、LazyWorkerを直接呼び出すこともできます。これはすべてのユースケースではなくてもほとんどの場合に有効です。他の宝石を引っ張ってしまうのでなければ、サイドキックでそれは本当にあなたの唯一の選択肢です。あなたは、これはあなたがステート・マシンを考慮する必要があります動作しません何かをやっている場合は別の仕事から直接発射
は...
十分ではありません。ジョブが起動されると、それ自身のレコードが作成され、IDとともに記録され、実行、失敗、完了、待機状態になる可能性があります。従属ジョブは、状態テーブル内の1つ以上の依存関係を簡単にチェックし、すべての依存関係が満たされていることを確認することができます。
あなたは依存ジョブはあなたがSidekiq Superworkerを使用してジョブの依存関係を定義することができます依存
関連する問題
- 1. 特定の時間に別のジョブによってJenkinsジョブをトリガする方法はありますか?
- 2. Sidekiq:キューに属するDeadジョブをフィルタリングして再試行する方法は?
- 3. sidekiqのジョブのタイムアウトの設定方法
- 4. Sidekiqはジョブを実行しません
- 5. rundeckはジョブの依存関係をサポートしていますか?
- 6. 別のサーバー上のジョブが終了したときに、ジョブまたはプロセスを開始する方法は?
- 7. RailsとResque - あまりにも古いジョブを無視する方法
- 8. 長時間実行されているSidekiqジョブが継続しています
- 9. Sidekiqジョブの完了を監視する最も良い方法は?
- 10. cronジョブがここにある.bashrc
- 11. SQLトランザクションログに問題があるジョブ
- 12. Sidekiqの任意の場所にジョブを見つける最良の方法
- 13. 実行中のジョブを無効にすると、ジョブが停止しますか?
- 14. ジョブを使用して非同期にPlay Framework PDFモジュールでPDFをレンダリングする方法はありますか?
- 15. ジョブ依存関係は、RabbitMQの
- 16. カスタムコントロールボタンのジョブをフォームに追加した後に設定する方法はありますか?
- 17. SQLジョブをジョブに実行させる方法は?
- 18. slf4jロギングを受信する方法と、バックエンドのロギングに依存しない方法はありますか?
- 19. 従属ジョブ実行時条件付きのAutoSys R11ジョブ依存
- 20. ジョブの情報(パラメータ、ステータス...)をデータベースに保存する方法は?
- 21. ジョブのスケジュール後にスケジューラを終了する必要がありますか?
- 22. iframeが新しいURLにあるときを伝える
- 23. 月の第3週末に実行されないcronジョブをスケジュールする方法はありますか?
- 24. 別のジョブが完了したらジョブをトリガーするにはどうすればよいですか?
- 25. Gradleにタスクの依存関係をリストする方法はありますか?
- 26. デリゲートを使用しているときにイベントの伝播を停止する方法はありますか?
- 27. 別のジョブからSQL Serverジョブをトリガーする
- 28. MediaPlayer.getCurrentPosition()にはシステムに依存するオフセットがあります
- 29. Quartzジョブからドメインオブジェクトにアクセスする方法を教えてください。
- 30. 更新ジョブ中にSQLテーブルを「ロック」する必要はありますか?
従業員の仕事を始めてもらえませんか? – DickieBoy
番号。残念ながらそのように処理することはできません –