【发布时间】:2022-11-22 07:30:16
【问题描述】:
我正在使用 Azure Functions 3.0.13 并参考提供的文档
我有一个每天运行的 TimerTrigger,它将 0...N 条消息放在服务总线上,然后由一个带有 ServiceBusTrigger 的函数处理,该函数使用所述消息。
但是,使用提供的 host.json 输入,我可以看到无论将 maxConcurrentCalls 设置为 1,所有消息都会同时处理。
这导致所有函数并行运行并导致我的数据库出现死锁。
我可以使用装饰器 [Singleton(Mode = SingletonMode.Function)] 一次运行一个,但这会影响我的吞吐量,我宁愿能够控制一次可以并行处理多少条消息。
我是在误解文档还是这是一个错误?
主机.json
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true
}
}
},
"functionTimeout": "01:00:00",
"extensions": {
"serviceBus": {
"prefetchCount": 1,
"messageHandlerOptions": {
"autoComplete": true,
"maxConcurrentCalls": 1,
"maxAutoRenewDuration": "00:05:00"
},
"batchOptions": {
"maxMessageCount": 1,
"operationTimeout": "00:05:00",
"autoComplete": true
}
},
"durableTask": {
"maxConcurrentActivityFunctions": 5,
"maxConcurrentOrchestratorFunctions": 1
}
}
}
【问题讨论】:
-
该队列上是否启用了会话?
-
@david-ao,不,他们看不到带有附加照片的更新编辑
标签: azure-functions azureservicebus