我的Rails应用启动了一个只发送短信的Sidekiq工作人员。我确信它不需要整个Rails环境才能工作(它只需要客户端的电话和文本作为参数发送)。但是目前工作人员加载它并因此从我的小型DigitalOcean Droplet中获取大量内存(就像单独的Rails应用程序一样)。
有没有办法告诉工作者路径到它应该要求的唯一文件?
答案 0 :(得分:3)
您可以将sidekiq工作者完全解耦为独立(一个或两个文件),并将其作为数字海洋实例上的单独进程运行。然后在你的rails应用程序中,当你准备完成工作时,你只需将工作推入redis:
Sidekiq::Client.push({
'class' => TextMessageWorker,
'queue' => queue_name,
'args' => [number, message]
})
有明显的限制(没有安排AFAIK),但这应该满足您对这个小例子的需求。
答案 1 :(得分:3)
您可以使用resources
来请求文件而不是引导Rails。