AWS Elastic Beanstalk - 启动SWF后台工作程序

时间:2013-01-19 00:07:55

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

我一直在尝试找出在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"

但是我收到以下错误消息:

ERROR
无法部署应用程序版本。

ERROR 有些实例没有响应命令。没有收到[i-a5417ed4]的答复。

我可以用配置文件做任何事情吗?如何在不引入单点故障的情况下在AWS EB中完成此工作?

谢谢。

2 个答案:

答案 0 :(得分:0)

您可以考虑使用像IronWorker这样的服务 - 这是专为您要做的事情而设计的,并且可能比将您自己的解决方案放在微型实例上更好。

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

答案 1 :(得分:0)

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