LoginSignup
0
0

More than 1 year has passed since last update.

実行中のRubyサーバ上でsidekiqプロセスが動いているか確認するコマンド

Last updated at Posted at 2022-09-08

ググっても出てこなかったのでメモ

Sidekiq::ProcessSet.new.map {|ps| ps['hostname'] }.include?(Socket.gethostname)
# または
Sidekiq::ProcessSet.new.map {|ps| ps['hostname'] }.include?(`hostname`.strip)

これで、
「現在のサーバでsidekiqプロセスが動いている場合はtrue、動いていない場合はfalse」が取得できます。
複数サーバでsidekiqプロセスを動かしていることがあると思いますが、
そのような時に有用かと思います。

ちなみに上記のコマンド内で出てくる Socket.gethostname`hostname`.strip は「Ruby のプロセスが稼働しているサーバの hostname を取得する」コマンドのようです。
Socket.gethostnameの方は、ruby 2.7以降ではdeprecatedとのことなので、
どちらかというと後者の`hostname`.stripが推奨されます。

参考

活用場面

「起動中のサーバでsidekiqプロセスが起動中かどうか」をif文にした処理を実装する場面で使用しました。

環境

ruby 2.6.6
rails 5.2
sidekiq 5.2.9

最後に

もっと良いコマンドがあれば教えていただけますと幸いです、、!!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0