队列中有多个参与者,如何处理它?

时间:2018-09-19 00:33:32

标签: message-queue amazon-sqs

对于超级基本问题,我深表歉意,但我仍在尝试学习如何使用消息队列。

情况:

每个用户都有一个“工作人员”,一次只能为该用户处理一项任务。如果队列看起来像这样:

[
    { taskForUser: 4, data { ...payload } },
    { taskForUser: 3, data { ...payload } },
    { taskForUser: 4, data { ...payload } },
    { taskForUser: 1, data { ...payload } },
    { taskForUser: 2, data { ...payload } },
    { taskForUser: 2, data { ...payload } },
    { taskForUser: 1, data { ...payload } },
    { taskForUser: 1, data { ...payload } } 
]

我想确保每个用户的工人都闲着,没有人闲着,并且在该用户的工作完成后,我希望该用户自己承担下一个工作。

本质上,这感觉就像是多个队列-每个用户一个队列。

为简单起见,为每个新用户注册动态创建队列似乎是一个不错的解决方案。但是,这样会产生过多轮询SQS之类的问题。

也许我从根本上误解了SQS的工作原理,但是如何最好地解决呢?

0 个答案:

没有答案