我如何在运行时检查 rails 应用程序在 sidekiq worker 的上下文中是否为 运行?
How can I check at runtime if a rails app is running in the context of a sidekiq worker?
我想 运行 在 rails 初始化程序中仅针对 sidekiq 编写一些代码。有没有办法检查我的 rails 应用程序是否在 sidekiq 的上下文中 运行?我知道一种方法是简单地用 SIDEKIQ=yes ...
调用它,然后检查 ENV['SIDEKIQ']
,但也许有更优雅的方法。
sidekiq 创建者在评论 here 中的答案是... 鼓声
Sidekiq.server?
如果你想 运行 初始化器中的代码块,惯用的方法是:
Sidekiq.configure_server do |config|
# do it
end
如果您查看该方法的实现,它会非常清楚:
yield self if server?
https://github.com/mperham/sidekiq/blob/3330df0ee37cfd3e0cd3ef01e3e66b584b99d488/lib/sidekiq.rb#L75
我想 运行 在 rails 初始化程序中仅针对 sidekiq 编写一些代码。有没有办法检查我的 rails 应用程序是否在 sidekiq 的上下文中 运行?我知道一种方法是简单地用 SIDEKIQ=yes ...
调用它,然后检查 ENV['SIDEKIQ']
,但也许有更优雅的方法。
sidekiq 创建者在评论 here 中的答案是... 鼓声
Sidekiq.server?
如果你想 运行 初始化器中的代码块,惯用的方法是:
Sidekiq.configure_server do |config|
# do it
end
如果您查看该方法的实现,它会非常清楚:
yield self if server?
https://github.com/mperham/sidekiq/blob/3330df0ee37cfd3e0cd3ef01e3e66b584b99d488/lib/sidekiq.rb#L75