基于 SQS 消息触发 SWF 工作流

2024-01-25

前言:我正在尝试针对我认为非常常见的用例提出一个提案,并且我想使用 Amazon 的 SWF 和 SQS 来实现我的目标。可能还有其他服务更符合我想要做的事情,所以如果您有建议,请随时扔掉它们。

Problem:最基本的需求是客户端(移动设备、Web 服务器等)发布一条消息,该消息将被异步处理,而不会对客户端做出响应 - 非常基本。

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

但我似乎无法弄清楚如何触发工作流程启动。根据我的阅读,工作流程并不意味着是一个无限期的过程。它有开始、中间和结束。根据 SWF 文档,工作流程的运行时间不能超过一年(在 SWF 中设置超时值 http://docs.aws.amazon.com/amazonswf/latest/developerguide/setting-timeouts.html#setting-timeouts-limits).

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

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

先感谢您。


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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于 SQS 消息触发 SWF 工作流 的相关文章

  • 在SQS队列中使用许多消费者

    我知道可以使用多个线程来使用 SQS 队列 我想保证每条消息都会被消耗一次 我知道可以更改消息的可见性超时 例如等于我的处理时间 如果我的进程花费的时间超过可见性超时 例如连接速度慢 其他线程可以使用相同的消息 保证消息被处理一次的最佳方法
  • Laravel - 作业在一台服务器上调度,在另一台服务器上处理

    我正在研究 Laravel 应用程序的日志记录方面 amd 计划将数据发送到 SQS 以便稍后检索 但是 我想将作业从生产服务器分派到 AWS 队列 然后让队列在侦听队列的单独日志服务器上工作 我了解如何设置队列工作程序来监听队列 但是 L
  • SQSlistener 未接收消息

    我能够从 springboot 向 SQS 队列发送消息 但无法使用 sqslistener 注释接收消息 有人可以帮忙吗 public void send String message queueMessagingTemplate con
  • 是否可以在将项目添加到 SQS 队列时触发 AWS Fargate 任务?

    为了澄清起见 我想做的是当特定队列中有项目时触发 Fargate 任务 我用过本教程 https medium com bowbaq trigger an ecs job when an s3 upload completes 3559c4
  • 使用 VPC 终端节点的 VPC 中 Lambda 的 SQS 超时

    这与中的问题基本上相同这个问题 https stackoverflow com questions 63624385 sqs timeout from lambda within vpc 但那里的答案并没有让我找到解决方案 我的配置是 1个
  • 使用 Spring Boot 监听消息队列 SQS 不适用于标准配置

    我无法使用 Spring Boot 和 SQS 创建工程队列侦听器 消息已发送并显示在 SQS ui 中 The MessageMapping or SqsListener不行 Java 11春季启动 2 1 7依赖项 spring clo
  • Amazon SQS 超过 2GB 数据

    使用 SQS 对来自客户端的一些上传进行排队 我收到以下错误 com amazonaws services sqs model AmazonSQSException 一个或多个参数无效 原因 消息必须短于 262144 字节 服务 Amaz
  • 在 SQS 中,延迟队列消息是否算作“正在运行”?

    我正在开发一个项目 我打算在其中使用Amazon SQS 延迟队列 http docs aws amazon com AWSSimpleQueueService latest SQSDeveloperGuide sqs delay queu
  • 芹菜与亚马逊 SQS

    我想用亚马逊SQS http aws amazon com sqs 作为经纪人支持Celery http celeryproject org SQS 传输实现Kombu https github com ask kombu Celery 依
  • 从 Amazon SQS 提供 Apache Spark Streaming?

    正如文档中所解释的那样 Spark 可以通过多种方式提供 如 Kafka Flume Twitter ZeroMQ Kinesis 或普通的旧式 TCP 套接字 有人知道如何从 Amazon SQS 提供 Spark Streaming 吗
  • 基于 SQS 消息触发 SWF 工作流

    前言 我正在尝试针对我认为非常常见的用例提出一个提案 并且我想使用 Amazon 的 SWF 和 SQS 来实现我的目标 可能还有其他服务更符合我想要做的事情 所以如果您有建议 请随时扔掉它们 Problem 最基本的需求是客户端 移动设备
  • spring cloud aws多个sqs监听器

    我的项目中有2个sqs监听器 我希望其中之一具有相同的设置 而其中之一具有不同的设置 我想要更改的唯一值是 maxNumberOfMessages 最实用的方法是什么 我想为其中一个侦听器设置不同的 maxNumberOfMessages
  • 无法在 C# 中访问 Amazon SQS 消息属性

    我有一个进程创建 SQS 消息并将它们放置在 SQS 队列中 另一个进程读取这些消息并根据消息正文的内容和属性执行某些逻辑 我可以在 SQS 队列上成功创建一条带有正文和属性的消息 但在读回消息属性时遇到问题 我确信我的消息创建过程是正确的
  • 如何通过 AWS SQS 触发 AWS Glue 作业

    我正在学习一个名为 AWS Cloudformation 的出色工具 但我很难找到资源来了解如何通过 SQS 触发 AWS Gluejob 我从以下网站了解到了 Glue Triggers here https docs aws amazo
  • AWS SQS-如果消息处理失败,消息传输是否会停止

    如果我批量有 5 条消息 并且由于网络故障 第四条消息在接收过程中失败 消息处理是否被阻止 对于标准队列和 FIFO 队列 第 5 条消息是否会被处理 在 FIFO 情况下 当您收到带有消息组 ID 的消息时 没有更多消息了除非您删除该消息
  • 如何在不编写代码的情况下在亚马逊sqs中实现指数退避

    我有一个需要第三方的简单任务 当请求到来时 我将其推送到amazon sqs队列 将其拉入工作人员并调用3rd party 如果超时 我想实现指数退避 在 2 秒内重试 然后是 4 秒 然后是 8 秒 然后 最大重试次数 Using pyt
  • 仅在处理同一主题的 SQS 订阅后调用 AWS Lambda SNS 事件

    我想实现一个 Amazon SNS 主题 它首先将消息传递到作为该主题订阅者的 SQS 队列 然后执行也是同一主题订阅者的 AWS Lambda 函数 然后 Lambda 函数可以从 SQS 队列读取消息并并行处理其中的多个消息 数百个 我
  • 如何使用加密的 DLQ 将重新驱动策略添加到 SNS

    我有一个 SNS 用 KMS 加密 由两个 lambda 订阅 我正在尝试向其中一项订阅添加重新驱动策略 相关 DLQ 已加密 添加重新驱动策略会出现错误 无法检查 Amazon SQS 队列权限 确保队列存在并且您的帐户有权读取队列的属性
  • 基于 SQS 队列大小的自动缩放

    我已将这些命令组合在一起 以根据 SQS 队列大小自动缩放 EC2 实例 我已运行所有命令 我的队列有 10 条消息 但尚未启动单个实例 我想弄清楚我的 cloudwatch 警报正在侦听哪个 SQS 队列 此外 我们还感谢任何有助于识别问
  • 每次在我的 AWS SQS 目标上推送通知时如何触发事件?

    我正在将 AWS SQS 用于 Amazon MWS 订单 API 每当有人从已将我添加为其开发人员的卖家帐户订购时 亚马逊都会将通知发送到我的 AWS SQS 应用程序 我可以从那里提取通知 但为此 我必须创建一个调度程序来提取通知 我是

随机推荐

  • 使用日期的 For 循环编译错误:语法错误

    我正在尝试运行一个脚本 该脚本将浏览特定列的所有行 然后它将这些列中的日期与设定的日期进行比较 如果日期大于则删除该行 我收到的错误称为编译错误 语法错误 Sub removewrongyear Dim i As Integer For i
  • 预编译头文件和普通包含文件

    使用预编译头时 当我在常规头中包含一个已经包含在预编译头中的头时 是否会产生影响 或产生不良影响 或者换句话说 当我在另一个头文件中包含头 x 并同时在我的预编译头文件中包含 x 时 这是否会阻止预编译头提供的优化发挥作用 No 一般来说
  • 如何正确应用RGBA_8888和抖动?

    我有带有渐变的splash png 但在屏幕上这个图像看起来不太好 我的简单 apk这个问题包括 public class TestditherActivity extends Activity Override public void o
  • 替换文本文件中的一行

    我有一个文本文件 被另一个应用程序用作配置文件 我已将文件的每一行读入字符串数组 string arrLine File ReadAllLines pathToFile 这正是我需要的 现在 我需要做的就是用字符串替换 arrLine x
  • 如何从角度材料日期选择器获取当前时间?

    我正在使用角度材料日期选择器https material angular io components select overview https material angular io components select overview
  • 在CMake项目下编译单个文件?

    我正在开发一个 C 项目 该项目将包含在一个更大的项目中 我已经看到 在更大的项目 是一个 Qt 应用程序 它是从 qmake 生成的 上 我可以从 linux 命令行编译单个文件 只需输入特定文件的相对路径作为 make 的参数 另一方面
  • 尝试将实体编码为 json 时出现问题

    我尝试将 Doctrine 实体编码为 JSON 字符串 以作为 Ajax 响应发送 所以 我检查了文档 串行器组件 http symfony com doc current components serializer html 我尝试使用
  • Vue.js 空过滤结果

    在 Vue 中 我必须过滤一些数据
  • Swift3随机扩展方法

    我使用这个扩展方法来生成随机数 func Rand range Range
  • 从使用 atexit() 注册的函数内部获取退出状态

    在我的里面atexit 注册函数我想获得退出状态 参数exit 3 或者 main 返回了什么 有没有任何便携式方法可以做到这一点 是否有任何 GNU libc 特定的方法可以做到这一点 例如我可以引用的全局持有该值 这是一个技巧 hack
  • 如何将图片上传到另一台服务器?

    我想创建一个提供 html 内容的应用程序服务器 其中包含由不同域上的另一台服务器提供的静态图像的链接 图片由用户通过应用服务器上传 我将执行以下操作将 JPEG 文件上传到应用程序服务器 if file exists folder nam
  • TFS 构建失败,但 Visual Studio 可以工作

    我做了一个新的构建定义 大多数选项保留默认值 我暂时只是玩玩而已 问题是 当我在 Visual Studio 2013 中以发布模式构建项目时 一切都很好 没有错误 当 TFS 构建它时 我遇到了一些错误 我必须将其从我自己的语言翻译成英语
  • 如何在滚动视图中调整图像视图的大小,就像在此图像中完成的那样?

    我创建了一个滚动视图 并在其中放置了一个图像视图 我希望滚动它以与下图中相同的方式调整大小 但到目前为止我还没有取得什么成功 在我的尝试中 图像在滚动时调整了大小 但是调整大小后仍有剩余空间 您将如何修改以下内容 Image 到目前为止我的
  • JS 中的 Excel PMT 函数

    我在互联网上找到了一个关于 PMT 计算的小片段 function PMT i n p return i p Math pow 1 i n 1 Math pow 1 i n function CalculatePMTFromForm idL
  • 如何在多个显示器上最大化窗口?

    使用 AutoHotkey 如何绑定热键以在多个显示器上拉伸 最大化 跨越窗口 以便它覆盖两个显示器 现在 我必须通过用鼠标手动拉伸窗口来完成此操作 我知道有专用工具可以执行此操作 但我已经在运行 AutoHotkey 脚本 并且宁愿限制我
  • SOQL python 中的通配符

    我正在尝试使用 simple salesforce 包使用 python 从 salesforce 进行查询 当我使用通配符时 它会抛出故障错误 soql SELECT FROM Contact where LastModifiedDate
  • Protractor 的 waitForAngular() 在 angular-webapp 上失败(真实设备上的 appium/chrome)

    我 新 使用量角器来运行 e2e 黄瓜测试 我有一个基于 angularJS 的网络应用程序 我正在使用 appium 在真实的 Android 设备上远程运行测试 这是我正在使用的版本 windows8 1 email protected
  • SBT:评估任务顺序

    我正在尝试获取有关 sbt 项目中所有模块的信息 有以下代码 lazy val getModule taskKey Module get single module info lazy val allModules taskKey Seq
  • 在 FilterChain.doFilter() - HttpServletResponseWrapper 之后添加 Cookie 以忽略刷新?

    我想将 cookie 添加到HttpServletResponse其内容 通常是 HTML 呈现后 正如这里提到的 http osdir com ml java jasig uportal 2005 10 msg00276 html htt
  • 基于 SQS 消息触发 SWF 工作流

    前言 我正在尝试针对我认为非常常见的用例提出一个提案 并且我想使用 Amazon 的 SWF 和 SQS 来实现我的目标 可能还有其他服务更符合我想要做的事情 所以如果您有建议 请随时扔掉它们 Problem 最基本的需求是客户端 移动设备