Azure队列和功能:发送到队列的消息是否将处理相同的订单

时间:2018-03-21 08:53:32

标签: azure azure-functions azure-storage-queues

我正在使用QueueTrigger处理存储队列和函数,我还在host.json中放置了BatchSize = 1。我确定一次只能发送一条消息。 我想知道发送给函数的消息是否按顺序到达队列。

我有4个数据发送到具有时间戳的队列。我看到他们中的一个没有到达我用作历史记录的azure表。 我认为应该将一个尚未处理的天堂发送到队列中。

后来我向队列发送了另一条消息,但是这条消息得到了处理,而不是之前发送的消息

1 个答案:

答案 0 :(得分:5)

没有。 使用Function处理队列时没有订单保证。功能的概念是自动缩放并且并行处理。这从一方面来说。另一方面,使用Azure Storage Qeueues,没有FIFO保证。保证FIFO处理的唯一队列是Azure Service Bus Queue 与Sessions一起使用时。但Azure功能不支持会话。 有关Storage Queues and Service Bus Queues comparison is here的更多信息。 以及missing Session support in Functions here上的信息。

但是,如果您只是将消息存储在存储表中,则可以实现该目标。发送时,您必须在邮件中添加时间戳。然后将该属性保存到存储中并使其成为RowKey的一部分。