【问题标题】:How can I check at runtime if a rails app is running in the context of a sidekiq worker?我如何在运行时检查 rails 应用程序是否在 sidekiq 工作者的上下文中运行?
【发布时间】:2021-09-10 22:23:46
【问题描述】:

我想在 Rails 初始化程序中运行一些代码,仅用于 sidekiq。有没有办法检查我的 rails 应用程序是否在 sidekiq 的上下文中运行?我知道一种方法是简单地使用SIDEKIQ=yes ... 调用它,然后检查ENV['SIDEKIQ'],但也许还有更优雅的方法。

【问题讨论】:

    标签: ruby-on-rails sidekiq


    【解决方案1】:

    如果要在初始化程序中运行代码块,惯用的方式是:

    Sidekiq.configure_server do |config|
      # do it
    end
    

    如果您查看该方法的实现,就会发现它非常清晰:

    yield self if server?
    

    https://github.com/mperham/sidekiq/blob/3330df0ee37cfd3e0cd3ef01e3e66b584b99d488/lib/sidekiq.rb#L75

    【讨论】:

      【解决方案2】:

      sidekiq 创建者在here 的评论中给出的答案是...... drumroll

      Sidekiq.server?
      

      【讨论】:

        猜你喜欢
        • 2018-10-12
        • 1970-01-01
        • 1970-01-01
        • 2011-05-11
        • 1970-01-01
        • 1970-01-01
        • 2015-01-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多