我们有一个Ruby on Sinatra应用程序。我们使用sidekiq和redis进行队列处理。
我们已经实现并使用sidekiq对插入数据库的作业进行排队。它到目前为止一直很好。
现在我想添加另一个将从数据库中读取批量数据并导出到csv文件的作业。
我不希望这个作业都在同一个队列中,而是可以在同一个应用程序中为这些作业创建不同的队列吗?
请给出一些解决方案。
答案 0 :(得分:2)
您可能需要高级队列选项。在这里阅读它们:https://github.com/mperham/sidekiq/wiki/Advanced-Options
从命令行创建csv
队列(也可以在配置文件中完成):
sidekiq -q csv -q default
然后在你的工人中:
class CSVWorker
include Sidekiq::Worker
sidekiq_options :queue => :csv
# perform method
end
答案 1 :(得分:1)
看看sidekiq wiki:https://github.com/mperham/sidekiq/wiki/Advanced-Options
默认情况下,一切都在内部'默认'队列,但您可以在工作人员中指定队列:
sidekiq_options :queue => :file_queue
并告诉sidekiq处理你的队列,你必须在配置文件中声明它:
:queues:
- file_queue
- default
或将其作为参数传递给sidekiq进程:sidekiq -q file_queue