我有一个工作队列,有多个工人在看这个队列。(每个作业对应一个用户)。在任何给定时间,队列中的每个用户都可能有多个作业。
我不希望我的员工在任何给定时间为每个用户处理超过 1 个工作。仅当当时没有其他工作人员处理该用户时,该工作人员才应选择该用户的工作。如果用户的工作正在由工作人员处理,我还希望下一个用户工作在完成后立即被选中。
我想让我的工人用户不可知(即,任何工人都应该能够处理任何用户的工作)。这将帮助我水平扩展。
我应该怎么做?我想为每个用户创建单独的队列,但工作人员将不得不观看大量队列并可能浪费资源。我现在使用 beanstalkd 作为队列服务器。
任何帮助表示赞赏。