对于超级基本问题,我深表歉意,但我仍在尝试学习如何使用消息队列。
情况:
每个用户都有一个“工作人员”,一次只能为该用户处理一项任务。如果队列看起来像这样:
[
{ 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的工作原理,但是如何最好地解决呢?