繁体   English   中英

Laravel如何排队工作,如果php artisan队列:listen停止怎么办?

[英]How does Laravel queue work and what if php artisan queue:listen stops

我已经安装了beanstaled并且它与laravel一起正常工作。 我困惑的地方是我们必须这样做

php artisan queue:listen

开始侦听队列。 现在,我通过putty在amazone ec2实例上远程使用它。 但是什么是我关闭终端? 通过代码创建的作业是否有效? 是手动调用php artisan queue:listenphp artisan queue:work 哪个看起来不公平。

如果一旦php artisan queue:listen了,即使我们关闭终端它会继续运行吗?

其实我不知道。

你还需要安装主管。 这是一个使用beanstalkd和laravel的教程:

http://fideloper.com/ubuntu-beanstalkd-and-laravel4

以下是主管的详细信息:

http://supervisord.org/installing.html

我个人使用redis实例并从那里与主管一起运行我的队列。 我发现它的内存有效性比beanstalkd个人有效,但每个都有自己的。

Supervisor将执行来自artisan的队列:listen命令,这将运行一个作业,如果您有多个管理程序进程,那么您可以运行多个行项目。 根据你正在做的事情,我几乎会考虑python和多线程,因为我已经将它用于我曾经使用队列的一些事情,它提供了更好的结果。

主管的示例配置文件:

[program:myqueue]
command=php artisan queue:listen --env=your_environment
directory=/path/to/laravel
stdout_logfile=/path/to/laravel/app/storage/logs/myqueue_supervisord.log
redirect_stderr=true
autostart=true
autorestart=true

您还可以使用Laravel的Task Scheduler ,即将php artisan queue:listen命令添加到调度程序,并将其频率设置为您想要的任何频率。

这样可以确保自动调用队列侦听进程。

希望它有意义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM