首页 > 解决方案 > 如何从另一个应用程序触发 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, domain, taskListToPoll);
 wfw.addWorkflowImplementationType(GreeterWorkflowImpl.class);
 wfw.start();

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

标签: javaamazon-web-servicesamazon-swf

解决方案


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


推荐阅读