对于作业完全相同的独立有序队列

时间:2013-01-16 12:14:55

标签: queue message-queue amqp

我正在寻找排队工具来帮助我按顺序处理工作。我将使用一个用户加入网站的例子来帮助传达问题,在现实生活中他们是更乏味的工作,每个人最多需要1分钟,有几千个用户。

user1 - 注册 - >流程付款 - >上传照片 - >调整照片大小

user2 - 重置密码 - >登录 - >上传照片 - >调整照片大小

上述作业都需要为该用户进行处理。即,您无法在注册完成前处理付款。这些作业中的每一个都以相同的方式处理(向外部服务发出http请求)。

如果用户1注册需要很长时间,则用户2没有理由等待密码重置。如果我在一个队列中有多个工作人员,则要弹出的下一个工作可能是任何事情,因此可能会以错误的顺序处理用户任务。

目前我有一个黑客攻击系统,使用redis列表执行此操作,但它不理想,需要改进。如果有现成的工具或模式,这将是伟大的。我以为我可能会为每个用户在rabbitmq上创建一个新的队列,但觉得它不是那么多的设计。

1 个答案:

答案 0 :(得分:0)

答案是使用某些客户端支持的amqp message groups,我最后使用fairy,因为我已经使用了nodejs。