我们使用的是一个持久的Orchestrator函数,它需要对活动函数进行数百万次调用。在100,000个调用之后,我们看到了以下异常:
业务流程操作的最大数量已经达到100,000。此值可以在host.json文件中配置为MaxOrchestrationActions。
但是,我无法找到如何设置此值。
在host.json模式中,没有指定它。
我已经提取了Azure函数持久扩展开发分支的头,并通过源代码进行了跟踪。这似乎可以设置为DurableTaskOptions.MaxOrchestrationActions,但必须在传递到DurableOrchestrationContext类之前设置。
我们猜测host.json中的属性可能是
{
"extensions": {
... other settings omitted for brevity ...
"durableTask": {
"MaxOrchestrationActions": xxxx
}
}
}
但没有运气。
有人对如何设置MaxOrchestrationActions有指导吗?
我的问题是,我使用的是Microsoft.Azure.WebJobs.Extensions.DurableTask框架的旧版本。一旦我更新到2.1.1,它就像预期的那样工作了。
我已经向Microsoft报告了缺少maxOrchestrationActions文档的情况,他们正在对文档进行更新。
发布于 2020-07-07 14:55:31
没错,默认值是100 k,您应该可以使用host.json进行更改。
我注意到了两件事:您没有提供版本号,也没有使用骆驼案例:
{
"version": "2.0",
"extensions": {
"durableTask": {
"maxOrchestrationActions": xxxx
}
}
}
更多信息:
发布于 2020-11-19 20:33:32
对我来说,推荐的答案行不通。这可能是因为我有依赖注入。因此,我通过像这样注入DurableTaskOptions来实现这个目标:
.AddSingleton<IOptions<DurableTaskOptions>>(new OptionsWrapper<DurableTaskOptions>(
new DurableTaskOptions
{MaxOrchestrationActions = 1500000}))
https://stackoverflow.com/questions/62777387
复制相似问题