【问题标题】:How to make Sidekiq workers not to load Rails environment如何让 Sidekiq 工作人员不加载 Rails 环境
【发布时间】:2015-08-01 21:43:08
【问题描述】:

我的 Rails 应用程序启动了一个仅发送文本消息的 Sidekiq 工作程序。我确信它不需要整个 Rails 环境来工作(它只需要客户端的电话和文本作为参数发送)。但目前工作人员加载它并因此从我的微小 DigitalOcean 液滴中获取大量内存(就像单独的 Rails 应用程序一样)。

有没有办法告诉工作人员路径到它应该需要的唯一文件?

【问题讨论】:

    标签: ruby-on-rails ruby sidekiq


    【解决方案1】:

    您可以将 sidekiq 工作器完全分离为独立的(一个或两个文件),并将其作为一个单独的进程在您的数字海洋实例上运行。然后在你的 Rails 应用程序中,当你准备好工作时,你只需将工作推送到 redis 中:

    Sidekiq::Client.push({
        'class' => TextMessageWorker,
        'queue' => queue_name,
        'args'  => [number, message]
    })
    

    这有明显的限制(没有安排 AFAIK),但这应该满足您对这个小示例的需求。

    【讨论】:

    • 不错的建议,我会检查一下。谢谢!
    【解决方案2】:

    您可以使用-r 来请求文件而不是引导 Rails。

    【讨论】:

      猜你喜欢
      • 2015-01-03
      • 1970-01-01
      • 2013-07-10
      • 2018-11-05
      • 1970-01-01
      • 2013-02-02
      • 1970-01-01
      • 2012-10-05
      • 1970-01-01
      相关资源
      最近更新 更多