java - 如何从另一个应用程序触发 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 启动决策任务但停在那里。
解决方案
SWF 工作者必须始终运行。没有办法触发它们。将它们视为队列消费者。例如,无法触发 SQS 消费者。它预计由应用程序代码管理和启动。
推荐阅读
- java - JavaParser:检测 FieldDeclaration 是否为接口类型
- python - 如何创建一个表来显示 python 中每种数据类型的计数?
- php - laravel 6 定义路径
- typescript - 量角器/黄瓜:动态选择日历上的第一个可用日期 - 承诺未解决
- reactjs - 如何在 React 中递归构建答案对象?
- linux - 如果 url 包含在引号中,CURL 仅获取文件的第一行
- go - Golang Base64 签名验证 VS CryptoJS
- c# - 如何验证 Json 中是否存在密钥列表?
- vba - 获取文件名中的时间保存在 Word 宏中
- neural-network - Julia Flux 双重推理问题