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