我已经安装了beanstaled并且它与laravel一起工作正常。我困惑的地方是我们必须做的事情
php artisan queue:listen
开始侦听队列。现在,我通过putty在amazone ec2实例上远程使用它。但是什么是我关闭终端?通过代码创建的作业是否有效?它是否一直手动调用php artisan queue:listen
或php artisan queue:work
。哪个看起来不公平。
如果php artisan queue:listen
完成,即使我们关闭终端,它会继续运行吗?
其实我不知道。
答案 0 :(得分:11)
您还需要安装主管。这是一个使用beanstalkd和laravel的教程:
http://fideloper.com/ubuntu-beanstalkd-and-laravel4
以下是主管的详细信息:
http://supervisord.org/installing.html
我个人使用redis实例并从那里与主管一起运行我的队列。 我发现它的内存效率比beanstalkd更有效,但每个都有自己的。
Supervisor将执行来自artisan的queue: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
答案 1 :(得分:0)
您还可以使用Laravel的任务计划程序,即将php artisan queue:listen
命令添加到计划程序,并将其频率设置为您想要的任何值。
这样可以确保自动调用队列侦听进程。
希望它有意义。