use*_*400 6 azure azure-queues azure-functions
我有一个与队列关联的 azure 队列触发器,我想确保触发器一次只读取和执行一条消息。因此,当消息被执行(成功与否)时,它会处理下一条消息。
正在发生的事情是队列执行一条消息,但它开始执行另一条消息。我的主机.json:
"queues": {
"maxPollingInterval": 20000,
"visibilityTimeout": "00:01:00",
"batchSize": 1,
"maxDequeueCount": 5,
"newBatchThreshold": 1
}
Run Code Online (Sandbox Code Playgroud)
以下来自 MS 链接的说明:
如果要避免在一个队列上接收的消息并行执行,可以将 batchSize 设置为 1
所以预计一次只运行一条消息(我正在使用消费计划)。
这很关键,因为我需要确保它当时只处理一条消息。
有什么设置可以更改吗?
或者队列触发器不是解决这个需求的好选择?
存储队列不保证顺序- 因此,如果由于交付顺序很重要而需要顺序处理,则需要考虑 Azure 服务总线并在功能设置 (host.json) 中进行设置
maxConcurrentCalls = 1
Run Code Online (Sandbox Code Playgroud)
即使您通过设置函数应用程序可以缩放到的最大实例数来实现这一点,Azure 存储队列仍然无法保证排序。
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT = 1
Run Code Online (Sandbox Code Playgroud)
Microsoft 文档并不是完美的。它正在不断更新。
归档时间: |
|
查看次数: |
4876 次 |
最近记录: |