2

我有一个将消息发送到 Azure 队列的 Azure Web 应用程序,并且我有工作人员轮询队列并在消息可用时对其进行处理。在大多数情况下,这工作正常,我对这个设计很满意。

但是,在一种情况下它的效果并不好,我正在寻找有关如何处理这种特定情况的建议:

有时,某个特定用户(我们称他为 Bob)会执行一些操作,这些操作会导致将几条消息发送到队列中,这会产生积压,其他​​用户必须等待 Bob 的消息被处理,然后才能处理他们的消息. 他们因为 Bob 在队列中发送了许多消息而受到惩罚。

如何改进我的设计以防止一个用户的消息不会导致其他用户的消息延迟?我的第一直觉是为每个用户创建一个队列,但如果我有几千个用户,我不确定这是一个合理的设计。

是否存在任何设计模式来解决这种情况?如果是这样,我可以重用该模式的任何 C# 实现吗?

4

0 回答 0