【发布时间】:2016-06-24 11:03:14
【问题描述】:
我有一个使用队列来发送电子邮件的应用程序。
在生产环境中,我应该在应用程序所在的同一应用程序服务器中运行 queue:listen 命令吗?还是应该外包?
到目前为止,我一直在使用两个命令行的开发环境中工作,一个用于 php artisan serve 命令以使应用程序运行,另一个用于 php artisan queue:listen 命令。如果外包更适合生产环境,我是否必须修改我的代码才能使用 Beanstalkd、Amazon SQS 或其他?
【问题讨论】:
-
你不能外包队列listening,只能外包队列本身。侦听器需要在您的服务器上运行(但可以想象,您可以拥有一个 Web 服务器和一个单独的专用于队列处理的服务器)。
-
基于@ceejayoz 的评论,如果您选择 Laravel 包含驱动程序的任何工作队列服务,则无需对现有代码进行任何更改,因为队列合同强制一致的 API。除此之外,如果您正在寻找有关如何在服务器上设置队列的详细信息,Laravel Queues Documentation 以非常好的方式解释了这一点,甚至包括有关如何使用诸如 Supervisor 之类的进程监视器的帮助以确保侦听器始终启动并运行。
标签: php laravel amazon-web-services laravel-5 amazon-sqs