Ruby on rails Sidekiq和单个队列的并发性

Ruby on rails Sidekiq和单个队列的并发性,ruby-on-rails,ruby-on-rails-4,sidekiq,Ruby On Rails,Ruby On Rails 4,Sidekiq,我有3个队列在运行 User Follower Default 用户可以导入数据,然后由用户队列完成。 这实际上创造了数以百万计的追随者,他们中的每一个人在追随者队列中都有一个更新自己的after_create 这里的问题是,50个用户现在可以创建他们的导入,但我只希望同时完成1个导入。先进先出-而跟随者队列仍应同时处理100个工人。 示例:1个用户导入500.000个追随者。然后下一个用户导入500万。下一个进口400。同时加载用户1的跟随者 有可能吗 我的YAML看起来像这样 :queue

我有3个队列在运行

User
Follower
Default
用户可以导入数据,然后由用户队列完成。 这实际上创造了数以百万计的追随者,他们中的每一个人在追随者队列中都有一个更新自己的after_create

这里的问题是,50个用户现在可以创建他们的导入,但我只希望同时完成1个导入。先进先出-而跟随者队列仍应同时处理100个工人。 示例:1个用户导入500.000个追随者。然后下一个用户导入500万。下一个进口400。同时加载用户1的跟随者

有可能吗

我的YAML看起来像这样

:queues:
  - user
  - follower
  - default
文档现在告诉我,用户队列的优先级很高。但是,如何判断此队列中只有一个作业同时完成?

sidekiq core不支持此功能,该功能的作者也不支持此功能。但是,有一个外部中间件似乎支持设置每个队列的工作限制。使用它,您应该能够轻松设置所需:

# sidekiq.yml
:limits:
  user: 1
  follower: 100
  default: 10 # or whatever you like

虽然gem代码有点旧,但您的里程数可能会有所不同…

sweet。我已经看到了,但随后就消失了。我来试试:-