LoginSignup
0
0

More than 3 years have passed since last update.

自身が sidekiq のプロセスかどうか判定する

Last updated at Posted at 2020-02-12

問題

Rails Server や Rake Task のプロセスで実行するパッチを Sidekiq のプロセスでは実行したくない。

最新の解決策

下記のメソッドを使って判定する。

if Sidekiq.server?
  # sidekiq のプロセス
else
  # sidekiq のプロセスでない普通の rails のプロセス
end

以前の解決策

Sidekiq プロセスは起動時に config/sidekiq.yml を読み込み、 Sidekiq.options に格納する。したがって自身が Sidekiq プロセスかどうかを見るには config/sidekiq.yml にしか書かれていない情報がすでに読み込まれているかを確かめればよい。たとえば下のような分岐をする。

if Sidekiq.options[:queues].present?
  puts "Sidekiq プロセス"
else
  puts "Rails Server プロセスをはじめとした Sidekiq 以外のプロセス"
end

config/sidekiq.yml 以外で queues を定義している場合はその限りでない。

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