Laravel 队列:在主机中永远运行的工作?
Posted
技术标签:
【中文标题】Laravel 队列:在主机中永远运行的工作?【英文标题】:Laravel Queue:work running forever in host? 【发布时间】:2018-04-20 11:54:43 【问题描述】:我有一个关于 Laravel 队列的问题。 首先我的队列驱动程序是数据库,如果我曾经使用命令 queue:work 调用 cron 作业,队列将永远工作吗?或者我必须定义一个每分钟运行一次的 cron 作业?
【问题讨论】:
检查你的 laravel.log 文件,你的工作肯定有一些错误.. @ankitpatel 我的问题是关于 cron 工作的。我需要设置一个 cron 来调用 queue:work 每分钟?或每年打电话完成 【参考方案1】:您需要在 Console/Kernel.php 文件的 Schedule 函数中设置每分钟的命令或队列
命令:
$schedule->command('your-command')->everyMinute();
工作:
$schedule->job(new JOBCLASS)->everyMinute();
那你需要输入
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
在服务器上的 crontab 文件中检查内核文件中的每一分钟以检查是否设置了任何命令
【讨论】:
**** php /path artisan queue:work 和 **** php /path sheduler:run 有什么区别? @MortezaNegahi 队列和调度器是完全不同的东西!阅读文档! 但是 sheduler:run 运行我的工作和 queue:work 也运行它!我不能有这种不同的感觉,谢谢你的大力帮助:-) 您需要设置调度程序来运行您的作业。我上面提到的答案会将您的所有作业设置在数据库作业表中。调度程序将每分钟检查作业表中是否有任何条目 一旦你设置了调度器,你就不需要运行 schedule:run以上是关于Laravel 队列:在主机中永远运行的工作?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Supervisor 运行多个 Laravel 队列工作者