【发布时间】: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