标签: ruby-on-rails sidekiq
如果我有多个服务器作为sidekiq工作,sidekiq如何确保在轮询redis时它不会为2台服务器提供同样的工作来处理?
有人可以指向代码库,因为我真的想了解幕后发生了什么。
答案 0 :(得分:4)
BRPOP是原子的,它从列表中弹出一个项目并将其处理给调用者。如果列表有三个元素,则1000个调用者可以同时调用brpop。三个调用者将获得一个元素,另一个997将阻塞,等待一个元素。
https://redis.io/commands/brpop