【发布时间】:2020-04-13 09:22:35
【问题描述】:
我的意图是让 ParentWorkflow 启动一个独立的 ChildWorkflow,然后不等待孩子完成。但是,当我直接从 ParentWorkflow 启动 ChildWorkflow 时,我发现我无法获得这种行为——父母总是在等待孩子。如果父母终止(取消、放弃、终止),您可以设置孩子会发生什么,但您不能“断开”孩子与父母的联系。
我想出一个能够做到这一点的好方法是启动一个活动 LaunchChildWorkflowActivity,然后它会产生子工作流。但是,测试运行导致出现此错误:
No context found. It means that the method is called outside of the workflow definition code.
堆栈跟踪表明,在 LaunchChildWorkflowActivity 中,调用 ChildWorkflowClientFactory.getClient() 最终会导致 getDecisionContext() 调用,这在 Activity 中是不允许的。所以现在我不确定如何继续。
一个想法是在 ParentWorkflow 中获取 ChildWorkflowClient,并将其传递给 LaunchChildWorkflowActivity.launchChild,但我不确定这是最好的想法,因为 SWF 对可以从上下文传递到上下文的对象大小有限制,例如这个。
(我试图完成这项工作的原因是我希望 ChildWorkflow 中的逻辑是它自己独立的轻量级单元,可以单独重试,而无需调用包含相当昂贵的操作的 ParentWorkflow。)
【问题讨论】:
-
请显示相关代码并说明确切的问题或错误。仅有描述是不够的。另请参阅How to create a Minimal, Complete, and Verifiable example。
标签: amazon-swf