sidekiq如何阻止多名工人从事相同的工作?

时间:2017-01-04 16:21:50

标签: ruby-on-rails sidekiq

如果我有多个服务器作为sidekiq工作,sidekiq如何确保在轮询redis时它不会为2台服务器提供同样的工作来处理?

有人可以指向代码库,因为我真的想了解幕后发生了什么。

1 个答案:

答案 0 :(得分:4)

BRPOP是原子的,它从列表中弹出一个项目并将其处理给调用者。如果列表有三个元素,则1000个调用者可以同时调用brpop。三个调用者将获得一个元素,另一个997将阻塞,等待一个元素。

https://redis.io/commands/brpop