如何从另一个应用程序触发 AWS SWF

问题描述

我是 SWF 的新手,我正在尝试编写一个工作流以在我的应用程序中使用。我能够使用 AWS 开发工具包成功编写、部署和运行工作流程。工作流使用 lambda 函数与我的应用程序通信以调用应用程序中的 API。我的问题是如何使用 API 从应用程序中触发工作流工作者。

到目前为止,我能够使用 SimpleWorkflowService.StartWorkflowExecution API 调用成功启动执行,该调用计划了一个决策任务,但没有进一步执行。我的问题是如何使用 API 触发工作人员开始执行,基本上是在我的主函数中触发此代码

ActivityWorker aw = new ActivityWorker(service,domain,taskListToPoll);
 aw.addActivitiesImplementation(new GreeteractivitiesImpl());
 aw.start();

 WorkflowWorker wfw = new WorkflowWorker(service,taskListToPoll);
 wfw.addWorkflowImplementationType(GreeterWorkflowImpl.class);
 wfw.start();

我尝试使用 SimpleWorkflowService.PollForDecisionTask 启动决策任务但停止在那里。

解决方法

SWF Worker 必须始终运行。没有办法触发它们。将它们视为队列消费者。例如,无法触发 SQS 使用者。预计由应用程序代码管理和启动。