gpt4 book ai didi

amazon-sqs - 基于 SQS 消息触发 SWF 工作流

转载 作者:行者123 更新时间:2023-12-03 12:20:55 28 4
gpt4 key购买 nike

序言:我正在尝试为我认为是一个非常常见的用例提出一个建议,我想使用 Amazon 的 SWF 和 SQS 来实现我的目标。可能还有其他服务可以更好地匹配我正在尝试做的事情,因此,如果您有任何建议,请随时将其丢弃。

问题:最基本的需求是客户端(移动设备、Web 服务器等)发布一条消息,该消息将被异步处理而无需响应客户端——非常基本。

预期的实现是让客户端将消息发布到预先确定的 SQS 队列。到那时,客户端就完成了。我们还将有一个已定义的 SWF 工作流,负责从队列中取出消息并(经过一些操作后)将其放入 Dynamo DB 中——同样,所有这些都相当简单。

我似乎无法弄清楚的是如何触发工作流程开始。从我读过的内容来看,工作流并不意味着是一个无限期的过程。它有开始、中间和结束。根据 SWF 文档,工作流可以运行不超过一年 ( Setting Timeout Values in SWF )。

所以,我的问题是:如果我假设一个工作流代表一个消息处理流,那么每当将消息发布到 SQS 时,我如何启动工作流?

警告:我也研究过使用 SNS 而不是 SQS。这将允许我运行一个可以订阅 SNS 的服务器,然后在发布通知时启动工作流。这当然是一种解决方案,但我想避免为单个 Web 服务设置服务器,然后我必须根据正在处理的消息数量对其进行管理/扩展。我首先考虑使用 SQS/SWF 的原因是拥有一个我不必担心的自动缩放系统。

先感谢您。

最佳答案

我将创建一个监听 SQS 队列的工作进程。收到消息后,它会调用 SWF API 以启动工作流执行。应根据消息内容生成工作流执行 id,以确保重复消息不会导致重复工作流。

关于amazon-sqs - 基于 SQS 消息触发 SWF 工作流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20548814/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com