【发布时间】:2013-04-02 16:14:15
【问题描述】:
我有一个作业队列,有多个工作人员在看这个队列。 (每个作业对应一个用户)。在任何给定时间,队列中的每个用户都可能有多个作业。
我不希望我的员工在任何给定时间为每位用户处理超过 1 个作业。仅当当时没有其他工作人员处理该用户时,该工作人员才应选择该用户的工作。如果用户的工作正在由工作人员处理,我还希望在下一个用户工作完成后立即选择它。
我想让我的工作人员用户不可知(即,任何工作人员都应该能够处理任何用户的工作)。这将帮助我水平扩展。
我应该怎么做?我想为每个用户创建单独的队列,但工作人员将不得不观看大量队列并可能浪费资源。我现在使用 beanstalkd 作为队列服务器。
感谢任何帮助。
【问题讨论】:
标签: architecture worker beanstalkd job-queue