Ham*_*ava 2 php beanstalkd laravel
我在项目中使用Beanstalkd作为工作队列.
现在,我的项目已经完成,我必须在VPS(生产服务器)上部署它.
有些让我困惑的事情!我应该ssh到生产服务器并手动输入php artisan queue:listen?(这是垃圾)
有没有服务器queue:listen作为服务运行?
您应该使用Supervisor之类的东西在生产中运行队列.这将允许您在后台运行该进程,指定要处理排队作业的工作器数,并在进程失败时重新启动队列.
至于你选择使用的队列,这取决于你.在过去,我已经在实例和Amazon SQS上本地安装了Beanstalkd.本地实例适用于基本的电子邮件发送和其他异步任务,SQS非常适用于消息量巨大且需要扩展的情况.还有其他SaaS产品,如IronMQ,但人们在生产中遇到问题的通常原因是因为他们没有使用Supervisor.
您可以安装Supervisor apt-get.以下配置是一个很好的起点:
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /home/forge/app.com/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
numprocs=8
stdout_logfile=/home/user/app.com/worker.log
Run Code Online (Sandbox Code Playgroud)
这将执行以下操作:
php artisan queue:work命令/home/user/app.com/worker.log要启动Supervisor,您将运行以下命令(重新读取配置/重新启动后):
sudo supervisorctl start laravel-worker:*
Run Code Online (Sandbox Code Playgroud)
该文档为您提供了有关使用Supervisor运行Laravel队列进程的更深入信息.