PHP AWS Elastic Beanstalk 后台工作者

Posted

技术标签:

【中文标题】PHP AWS Elastic Beanstalk 后台工作者【英文标题】:PHP AWS Elastic Beanstalk background workers 【发布时间】:2013-05-06 20:20:30 【问题描述】:

我使用 Elastic Beanstalk 部署了我的应用程序,因为这为我提供了一个非常简单的部署流程,可以使用“git aws.push”一次部署到多个实例。

我喜欢为我的应用程序添加后台处理支持。后台工作人员将使用相同的代码库,并简单地启动一个长期存在的 php 脚本,该脚本不断寻找要执行的任务。我应该使用什么 AWS 来创建这样的工作实例?

我应该也为此使用 EB 还是应该尝试设置标准 EC2 实例(因为我不需要它公开可用)?我想这是正确的做法,然后创建一个部署流程,以便轻松部署到我的 EC2 工作程序实例和 Elastic beanstalk 应用程序?还是有更好的方法?

【问题讨论】:

【参考方案1】:

如果工作人员只是轮询队列中的作业并且不需要 ELB,那么您需要做的就是使用 EC2、SQS,可能还有 S3。您可以将 EC2 实例作为 Auto-scaling 组的一部分启动,例如,该组配置为根据 SQS 队列的深度进行扩展。当没有工作要做时,您可以拥有最少的 EC2 #,但如果队列变深,自动缩放将加速。

【讨论】:

【参考方案2】:

AWS EB 现在增加了对工作器实例的支持。它们只是两种不同的环境:

他们没有 cnamePrefix (whatever.elasticbeanstalk.com) 相反,他们绑定了 SQS 队列

在每个实例上,他们运行一个名为 sqsd 的守护进程,该守护进程基本上轮询其环境的 sqs 队列并将其转发到本地 http 服务器。

我相信值得一试。

【讨论】:

以上是关于PHP AWS Elastic Beanstalk 后台工作者的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk PHP 日志不在 CloudWatch 中

AWS Elastic BeanStalk php.ini 文件更新

如何在 AWS Elastic Beanstalk Docker 容器中记录 PHP 错误

PHP AWS Elastic Beanstalk 后台工作者

在 AWS Elastic Beanstalk 中,如何更改 php.ini 的参数

在 AWS Elastic Beanstalk 上部署后运行 PHP 脚本