3
神を使用する(godrb.com)アプリケーションを配備するときに既存のプロセスのステータスに関係なく新しいプロセスを起動するレシピを作成しようとしています。既存のプロセスは、現在のタスクを完了するために長い実行タイムアウトが必要ですが、新しいプロセスは新しくデプロイされたコードを使用してすぐに開始する必要があります。神 - 既存のプロセスがまだ停止している間に新しいプロセスを開始する
私は今現在、停止時に300秒のタイムアウトを設定しますが、新しいプロセスを開始する前に300秒間待機します。この場合
God.watch do |w|
w.name = "sidekiq"
w.interval = 30.seconds
w.start = "bash -lc 'cd /path/to/current && ./bin/sidekiq -P /path/to/shared/pids/sidekiq.pid'"
w.stop = "bash -lc 'kill -USR1 `cat /path/to/shared/pids/sidekiq.pid`'"
w.stop_timeout = 300.seconds
w.pid_file = "/path/to/shared/pids/sidekiq.pid"
w.behavior(:clean_pid_file)
end
、kill -USR1
は、任意の現在のジョブの処理を完了するために、しかし、仕事はもう取らないためにsidekiqに指示します。
私は既存のワーカーに300秒のタイムアウトを維持したいが、killコマンドが実行されるとすぐに新しいプロセスを開始したい。
あなたはユニコーンがこれを行う方法を見たことがありますか?新しい労働者を育て、新しい労働者が古い労働者を殺すようにするのはUnicornの責任です。 – d11wtq
はい、その機能はUnicornの一部です。私は一般的なプロセスと同様のことを達成しようとしています。 – bensie