【发布时间】:2016-04-03 10:57:55
【问题描述】:
我已经实现了 Laravel 队列。问题是我每次都必须运行命令php artisan queue:listen。有什么方法可以在不运行任何命令的情况下自动执行作业。
【问题讨论】:
-
你使用的是什么操作系统?
-
然后你可以按照 Laravel 文档中的详细说明来安装和使用Supervisor 来管理队列监听器。
我已经实现了 Laravel 队列。问题是我每次都必须运行命令php artisan queue:listen。有什么方法可以在不运行任何命令的情况下自动执行作业。
【问题讨论】:
这是一个可放入您的 crontab 的单行程序(让它运行,比如说,每 5 分钟一次):
cd /path/to/your/project && jobs -l | grep `cat queue.pid` || { nohup /usr/bin/php artisan queue:listen & echo $! > queue.pid; }
这里有两个变量:
1. /path/to/your/project -- 是你的 Laravel 项目根目录。实际上,php artisan 可以工作的文件夹;
2./usr/bin/php——服务器上PHP可执行文件的路径(which php)
【讨论】:
是的,如果您使用 Linux,您可以使用例如 supervisor,它将运行 php artisan queue:listen(您需要将此命令添加到主管配置文件),它将确保该命令一直运行。
【讨论】: