0

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

user1 - 注册 -> 处理付款 -> 上传照片 -> 调整照片大小

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

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

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

目前,我有一个组合系统,它使用 redis 列表来执行此操作,但它并不理想,需要改进。如果有现成的工具或模式可以做到这一点,那就太好了。我以为我可以通过编程方式为每个用户在rabbitmq 上创建一个新队列,但我觉得它并不是为此而设计的。

4

1 回答 1

0

答案是使用一些客户端支持的 amqp 消息组,因为我已经在使用 nodejs ,所以我最终使用了童话。

于 2013-03-19T12:00:02.717 回答