【问题标题】:AWS Elastic Beanstalk - Starting SWF Background WorkersAWS Elastic Beanstalk - 启动 SWF 后台工作程序
【发布时间】:2013-01-02 19:08:19
【问题描述】:

我一直在尝试找出在 AWS Elastic beanstalk 上使用 PHP 运行后台作业的最佳方法,并且在 Google 和 SO 上搜索了数小时后,我相信一个好的解决方案是使用 SWF 和活动工作者。

我发现这个例子隐藏在 aws-sdk-for-php 中:https://github.com/amazonwebservices/aws-sdk-for-php/tree/master/_samples/AmazonSimpleWorkflow/cron

自述文件说:

要运行此示例,您需要在单独的终端/控制台窗口中从命令行执行三个脚本

注意 start_cron_example_workflow.php 脚本会快速退出 而决策者和活动工作者脚本继续运行,直到你 手动终止它们。

决策者和活动工作者将“永远”循环,而试图在 EB 中运行这些是我做不到的。

在我的 .ebextensions 目录中,我有一个执行这些文件的文件:

container_commands:
  01background_task: 
    command: "php -f start_cron_example_activity_workers.php"
  02background_task: 
    command: "php -f start_cron_example_workflow_workers.php"

但我收到以下错误消息:

错误
应用版本部署失败。

错误 一些实例没有响应命令。未收到来自 [i-a5417ed4] 的回复。

有什么方法可以使用配置文件来做到这一点?如何在不引入单点故障的情况下在 AWS EB 中进行这项工作?

谢谢。

【问题讨论】:

  • 你有解决这个问题的办法吗?
  • 还没有,抱歉。仍在等待 AWS 支持的回复。等我弄明白了再更新。
  • 同时,我想我会得到一个单独的微型实例来运行后台作业。

标签: amazon-web-services cron backgroundworker amazon-elastic-beanstalk amazon-swf


【解决方案1】:

您可能会考虑使用像 IronWorker 这样的服务——这是专为您正在尝试做的事情而设计的,并且可能比将您自己的解决方案放在一个微型实例上更有效。

我还没有使用过Iron.io,但我正在评估它,因为我希望将我的东西转移到 AWS,所以我还需要处理 cron 作业。

【讨论】:

  • 布拉德,谢谢你的建议。我已经研究过 IronWorker ......叹息......但这是我必须支付的另一项服务。
【解决方案2】:

你看过Fat Controller 吗?它可以守护任何东西。网站上有文档和示例:http://fat-controller.sourceforge.net

【讨论】:

    猜你喜欢
    • 2013-05-06
    • 2012-08-21
    • 2014-07-18
    • 2013-10-21
    • 2012-08-07
    • 2018-09-14
    • 1970-01-01
    • 2018-03-26
    • 2021-08-22
    相关资源
    最近更新 更多