15
sidekiqを再起動する正しい方法は何ですか?私はそれを開始するときに私の労働者のコードをキャッシュするようだ、私は私の労働者を変更するたびに私はそれを再起動する必要があります。私はCtrl/Cでこれをやっていますが、処理が遅れてプロンプトに戻ります。Sidekqを再起動する
即時効果で強制的に再起動する方法はありますか?
私はPOW経由Sinatraで最新バージョンを使用しています。
sidekiqを再起動する正しい方法は何ですか?私はそれを開始するときに私の労働者のコードをキャッシュするようだ、私は私の労働者を変更するたびに私はそれを再起動する必要があります。私はCtrl/Cでこれをやっていますが、処理が遅れてプロンプトに戻ります。Sidekqを再起動する
即時効果で強制的に再起動する方法はありますか?
私はPOW経由Sinatraで最新バージョンを使用しています。
Sidekiqにはsidekiqプロセスに関連付けられたPIDを停止できるsidekiqctlコマンドが付属しています。すべてのスレッドが終了するのを待つために、PIDファイルと秒数を渡します。
使用例:
ここsidekiqctl stop #{rails_root}/tmp/pids/sidekiq_website_crawler.pid 60
、60はすべてのSidekiqスレッドが処理が完了するまで待機する秒数を表します。 60秒が経過するとすべて終了せずに自動的に強制終了されます。
サイドキックを監視、停止、開始、再起動するために神の宝石を使用することもお勧めします。
これを実行すると、bundle exec god stopを使用してすべてのsidekiqスレッドを停止できます。
rails_env = ENV['RAILS_ENV'] || "development"
rails_root = ENV['RAILS_ROOT'] || "/home/hwc218/BuzzSumo"
God.watch do |w|
w.dir = "#{rails_root}"
w.name = "website_crawler"
w.interval = 30.seconds
w.env = {"RAILS_ENV" => rails_env}
w.interval = 30.seconds
w.start = "bundle exec sidekiq -C#{rails_root}/config/sidekiq_website_crawler.yml"
w.stop = "sidekiqctl stop #{rails_root}/tmp/pids/sidekiq_website_crawler.pid 60"
w.keepalive
# determine the state on startup
w.transition(:init, { true => :up, false => :start }) do |on|
on.condition(:process_running) do |c|
c.running = true
end
end
# determine when process has finished starting
w.transition([:start, :restart], :up) do |on|
on.condition(:process_running) do |c|
c.running = true
c.interval = 5.seconds
end
# failsafe
on.condition(:tries) do |c|
c.times = 5
c.transition = :start
c.interval = 5.seconds
end
end
# start if process is not running
w.transition(:up, :start) do |on|
on.condition(:process_running) do |c|
c.running = false
end
end
w.restart_if do |restart|
restart.condition(:restart_file_touched) do |c|
c.interval = 5.seconds
c.restart_file = File.join(rails_root, 'tmp', 'restart.txt')
end
end
end
パーフェクト:
は、ここでは一例として、私の神ファイルです。どうもありがとう。 – Undistraction
sidekiq.pidファイルはどうすればいいですか? – Undistraction
これには、SidekiqプロセスIDのPID(番号)だけを含める必要があります。 ps -ef |を実行します。それを得るためにgrep "sidekiq" –