Php Laravel任务调度程序不';行不通
我试图用Php Laravel任务调度程序不';行不通,php,laravel,queue,laravel-5.3,laravel-scheduler,Php,Laravel,Queue,Laravel 5.3,Laravel Scheduler,我试图用App/Console/Kernel.php protected function schedule(Schedule $schedule) { $schedule->command('queue:work')->everyMinute()->withoutOverlapping(); } 并在我的共享主机中设置cron作业,如下所示: * * * * * php /home/username/public_html/laravel/artisan sched
App/Console/Kernel.php
protected function schedule(Schedule $schedule)
{
$schedule->command('queue:work')->everyMinute()->withoutOverlapping();
}
并在我的共享主机中设置cron作业,如下所示:
* * * * * php /home/username/public_html/laravel/artisan schedule:run >> /dev/null 2>&1
但它在我的共享主机中不起作用
我对队列使用了数据库驱动程序,但尝试次数仍然为0,即任务调度器不执行队列
有人可以帮我解决这个问题吗?您可能需要检查以下几点: 队列:工作 请注意,一旦queue:work命令启动,它将继续运行 运行直到手动停止或关闭终端。 是否确实要每分钟使用计划程序生成一个新进程 为计划程序供电
artisan schedule:run命令需要每分钟运行一次,以便调度器工作。这可以通过cron完成:此链接可能有助于设置调度程序。我已经做完了,请试一试
我在主机上使用共享主机,适用于我的命令是
nohup php artisan queue:work &
&确保命令保持运行,并且使用nohup,即使退出或关闭终端,进程也不会被终止
更新:
如果可以从PHP运行shell命令,这就是我最终实现的解决方案。3天后,它可以正常工作。只有一个queue:work
实例运行,并且它仅在停止运行时重新启动。时间表每分钟都在运行
if ( ! strstr(shell_exec('ps xf'), 'php artisan queue:work'))
{
$schedule->command('queue:work')->everyMinute();
}
您还可以搜索
队列:工作
,而不是php artisan队列:工作
。在tinker中运行shell\u exec('ps xf')
,看看您得到了什么 抱歉,我还没有解释我已经设置了cron作业,我已经设置了cron作业,每分钟“***php/home/username/public\u html/laravel/artisan schedule:run>/dev/null 2>&1”那么调度器在本地环境中工作吗?另外,编写您自己的简单命令,记录一些内容并尝试对其进行调度。