首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >持久性函数子编排永远不会返回到父编排

持久性函数子编排永远不会返回到父编排
EN

Stack Overflow用户
提问于 2018-11-08 04:58:23
回答 1查看 521关注 0票数 0

我有一个子编排,它调用几个活动。其中一个活动被调用了大约150次,每个活动都被放在一个任务列表中,然后等待Task.WhenAll(列表)。这些任务中的每一个都返回一个base64编码的图像,因此消息位于较大的一侧。

编排聚合这些活动的结果,并将它们返回给父编排。单步执行调试器时,编排将正确完成并返回相应的结果。

在收到来自子编排的结果后,我在父编排的下一步中有一个断点,但它从未命中。结果永远不会返回给父级。

这是否与从子编排返回的消息大小有关?

如果我在父业务流程中内联子业务流程代码,而不是将其作为子业务流程调用,则可以很好地工作

EN

回答 1

Stack Overflow用户

发布于 2019-08-17 06:28:26

这似乎是持久函数框架中的一个错误。我遇到了同样的问题,一个Javascript编排器将在subOrchestration完成时立即退出,并且在subOrchestration之后不执行代码。该问题似乎源于一个错误,如果subOrchestration没有定义的instanceId,则持久函数框架无法从保存状态检索子编排的输出。因此,通过指定一个instanceId,代码可以很好地执行。

我失败的orchestrator代码如下所示:

代码语言:javascript
复制
var reboot_result = yield context.df.callSubOrchestrator('reboot_orchestrator',reboot_input);
context.log('this is the next line after subOrch call which will not get called');

context.log永远不会被调用。因此,我在callSubOrchestrator上手动指定了一个instanceId,这解决了这个问题:)

代码语言:javascript
复制
const child_id = context.df.instanceId + ":0"; //create instanceId
var reboot_result = yield context.df.callSubOrchestrator('reboot_orchestrator',reboot_input,child_id);
context.log('this is the next line after subOrch call and now it gets called properly');

下面是Github bug报告的链接:https://github.com/Azure/azure-functions-durable-js/issues/54

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53197710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档