バージョン Sidekiq 3.3.0 基本動作 ジョブが走っている状態でSidekiqを終了すると、8秒間(デフォルト)待って終了する。そして、8秒以内に終了しなかったジョブはキューに戻される。 メール送信くらいの軽いジョブであればで問題にはならないが、例えば、AWSのAPI叩いてRDSのインスタンスを作って完了まで待つジョブなんて走らせると平気で20分以上かかってしまう。しかもキューに戻されると再起動後にもう一台インスタンスが作成されてしまうのでかなり問題だ。 では安全に再起動するにはどうすればいいのか Sidekiqのプロセスに対してまずはSIGUSR1を送り、その後にSIGTERMを送ればいい。 SidekiqはUSR1を受け取ると、実行中のジョブはそのまま継続し、新規ジョブの実行を停止する。(キューは引き続き溜まる) 実行中のジョブが0になったタイミングでTERMを送って終了し、