如何让Sidekiq工作者不加载Rails环境

时间:2015-08-01 08:37:48

标签: ruby-on-rails ruby sidekiq

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

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

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:3)

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