Ruby on rails Sidekiq和单个队列的并发性
我有3个队列在运行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
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。我已经看到了,但随后就消失了。我来试试:-