问题标签 [amazon-swf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
404 浏览

apache-camel - 骆驼swf集成

在 2012 年的骆驼大会上,一场关于骆驼与亚马逊网络服务的会议。特别是一个例子是与简单工作流的集成。我在哪里可以找到该示例的代码或有关这些集成的类似内容?在此先感谢 F。

0 投票
4 回答
3679 浏览

python - 使用 Amazon SWF 在服务器之间进行通信

使用 Amazon SWF 在服务器之间传递消息?

  1. 在服务器上 AI 想运行一个脚本 A
  2. 完成后,我想向服务器 B 发送消息以运行脚本 B
  3. 如果它成功完成,我希望它从工作流队列中清除作业

我很难弄清楚如何结合使用 Boto 和 SWF 来做到这一点。我不追求一些完整的代码,但我追求的是是否有人可以解释更多关于所涉及的内容。

  • 我实际上如何告诉服务器 B 检查脚本 A 的完成情况?
  • 如何确保服务器 A 不会完成脚本 A 并尝试运行脚本 B(因为服务器 B 应该运行它)?
  • 我如何实际通知 SWF 脚本 A 完成?你是一面旗帜,还是一条信息,还是什么?

我对这一切感到很困惑。我应该使用什么设计?

0 投票
1 回答
4014 浏览

amazon-web-services - Amazon SWF:至少必须运行一名工作人员,为什么?

我刚刚开始使用 AWS Ruby SDK 来管理简单的工作流程。我立即注意到的一种行为是,在提交新的工作流执行之前,必须至少运行一个相关的工作人员和一个相关的决策者。

如果我在启动工作程序和决策程序之前提交了一个新的工作流执行,那么即使我仍然在超时限制内,这些任务也永远不会被执行。为什么是这样?根据对 HTTP 长轮询工作原理的描述,我希望任一应用程序在调用 poll() 时都能接收相关任务。

我在作业失败后遇到其他死锁情况(例如,由于工人或决策者错误,或由于被终止)。有时,重新运行甚至只是启动一个全新的工作流执行将导致工作流执行死锁。初始决策任务显示在 AWS 控制台的工作流执行历史记录中,但决策者从未收到它们。诚然,我无法确认/将此问题简化为测试用例,但我怀疑它与上述问题有关。这种情况大约有 10% 到 20% 的时间发生;其余时间,一切正常。

需要提及的其他一些事情:我将单个任务列表用于按顺序运行的两个单独的活动任务。工作者和决策者都在轮询同一个任务列表。

这是我的工人:

编辑

AWS 论坛上的另一位用户评论道:

我认为原因在于 SWF 没有立即识别长轮询连接关闭。当你杀死一个工人时,它的连接一段时间可以被服务认为是打开的。所以它仍然可以向它分派任务。对你来说,新工人似乎永远不会得到它。验证它的方法是检查工作流程历史记录。您将看到活动任务启动事件,其中包含已死工作人员的主机和 pid 的识别字段。最终,此类任务将超时,并且可以由决策者重试。

请注意,这种情况在频繁终止连接的单元测试中很常见,对于任何生产应用程序来说都不是问题。常见的解决方法是为每个单元测试使用不同的任务列表。

这似乎是一个相当合理的解释。我将尝试确认这一点。

0 投票
3 回答
5724 浏览

amazon-web-services - AWS Flow Framework 的开源等效项

那里有许多工作流系统,但我想知道哪个开源工作流管理系统最接近 AWS Flow Framework(内置类似 Amazon SWF 的功能)?

0 投票
1 回答
1223 浏览

amazon-web-services - 顺序活动的 AWS SWF 良好实践

我是 AWS SWF 的新手。仍处于学习和文件处理阶段。只是想出一个愚蠢的问题。对于顺序工作流的用例,我们是否应该将所有实现都放入一个大活动中,而不是定义将由决策者按顺序执行的一系列活动?由于工作流中的每个任务的收费为 0.000..25 美元,因此这种方式将为大规模节省更多资金。

对于这种用例,在保证顺序工作流执行中声明一系列小活动的充分理由是什么?

0 投票
1 回答
557 浏览

ruby - 工作流执行轮询中的速率超出

我目前正在尝试修改一个插件,以通过 AWS 将指标发布到 new-relic。我已经成功地使插件发布指标从 swf 到 new relic(最初不是在插件中),但是如果程序运行时间过长就会遇到问题。

当程序运行大约 10 分钟时,我收到以下错误:

我相信这是来自我对工作流执行的轮询 swf

这在每 60 秒的轮询周期中调用一次

有没有办法设置轮询率?或者另一种获取工作流执行的方法?

谢谢,这是 ruby​​ sdk for swf 的链接 =>链接

0 投票
1 回答
1747 浏览

amazon-web-services - How do you get the state of a WorkflowExecution if all you have is a workflowId in Amazon SWF

It seems that all SWF operations for getting execution state always also need the runId (their reference to the workflow execution), and I don't feel like storing that. I want to be able to do a lookup based on workflowId only (my id, not theirs). Is anything like that possible at all?

I mean, I guess I could add some tags to retrieve it by tags, but that seems a little awkward, if I already passed the workflowId as well.

0 投票
2 回答
1019 浏览

amazon-web-services - 在 Amazon SWF 中,我可以滥用决策任务来实际执行工作吗

我需要 Amazon SWF 来分配一些工作,确保它是异步完成的,确保它以可靠的方式存储并且它会自动重新启动。但是,我需要的工作流逻辑非常简单:只需执行一个任务。

我现在按照应该完成的方式实现了它:

  1. 请求工作流执行
  2. 决策者发现了它并安排了一项活动
  3. Workers 发现活动请求,执行结果并返回结果
  4. 决策者注意到结果并将其复制到工作流完成中

在我看来,我可以让决策者完成工作——就像它一样——并立即完成工作流执行。那会处理很多代码。(活动也可能失败、超时等。我目前需要处理的所有事情。)

回到我的问题:我可以有一个决策者自己执行工作并立即完成“工作流程”吗?

0 投票
1 回答
398 浏览

ruby-on-rails - 如何从 rails rake 任务访问 AWS::Flow::ActivityWorker

我正在尝试使用 Simple Workflow 服务来管理 rails 应用程序的作业。我的工作基于文档中的预订示例。rake 任务如下所示:

其余代码在线。我正在使用 aws-flow gem(并添加了 aws-flow-core),但出现错误:uninitialized constant AWS::Flow::ActivityWorker当我尝试运行活动工作者时。

0 投票
1 回答
2643 浏览

amazon-web-services - 用于本地测试的简单工作流 SWF

我正在寻找可以在本地运行以用于测试和开发目的的 AWS(亚马逊网络服务)SWF(简单工作流)服务。我还没有看到任何类似的东西可用,但我知道ElasticMQ实现了 AWS SQS 的一个子集作为构建 SWF 克隆所需的基本组件。我也将Apache ActiveMQ作为起点。

是否有人知道可用于本地测试和使用 SWF 开发应用程序的本地服务?对于其余大部分需求(S3、EC2、IAM 等),我已经有一个 Eucalyptus 3.3 实例。