【问题标题】:How to set the concurrency for each queue separately in sidekiq?如何在sidekiq中分别设置每个队列的并发?
【发布时间】:2019-04-11 21:01:01
【问题描述】:

例如,我有两个队列,我希望每个队列同时处理一个作业。

现在我有一个队列,我有类似的东西

bundle exec sidekiq -c 1 -q queue_name

我希望两个队列同时处理作业,每个队列应该有并发 1。那么,这可能吗?如果是,我该怎么做?

【问题讨论】:

  • 为什么不为每个队列启动两个 sidekiq 进程。尽管bundle exec sidekiq -c 1 -q first_queue bundle exec sidekiq -c 1 -q second_queue 可能会不稳定
  • 我们尽量不要有更多的进程,因为我们希望每个进程都会消耗内存。
  • @h0lyalg0rithm 为什么有一个专用于队列的进程不稳定?

标签: ruby-on-rails ruby-on-rails-4 concurrency queue sidekiq


【解决方案1】:

队列只是 sidekiq 执行作业的地方。并发允许同时执行已完成的作业。我的意思是队列不处理作业,它们只是收集它们并确定它们的优先级。因此短语set the concurrency for each queue 没有意义。

【讨论】:

  • 我能理解你的意思。就我的要求而言,我需要同时从每个队列中获取第一份工作并进行处理。希望这是有道理的。如果这很清楚,我会更新问题。
  • Sidekiq 异步执行作业。您无法控制它们何时执行。就 Sidekiq 而言,您的要求毫无意义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多