我有一个 Azure Functions QueueTrigger,它在存储队列上侦听如下消息:
Message text
--------------------------
{"ClientName": "client1"}
{"ClientName": "client2"}
{"ClientName": "client3"}
QueueTrigger 然后有这样的代码:
if 'client1' == queue_msg['ClientName']:
# do work required for client1
elif 'client2' == queue_msg['ClientName']:
# do work required for client2
elif 'client3' == queue_msg['ClientName']:
# do work required for client3
我正在使用带有batchSize
of的 Linux 消耗计划,1
因为队列触发器的每次调用可能需要大约 5 分钟,并且我想确保我不会超出内存限制。这个解决方案现在对我来说效果很好,但我担心当客户端数量增加时,消息将开始在队列中累积。是否可以只创建一个也在同一个存储队列上侦听的新 Azure 函数?我认为这没关系,因为每个消息/客户端都有独立于它们的工作,因此如果 Azure Function 应用程序中的任何一个首先接收到消息都没有关系。这对我来说似乎是最具成本效益的解决方案,但我想知道是否有更好的选择或任何我没有想到的负面结果。