Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel任务调度程序不';行不通_Php_Laravel_Queue_Laravel 5.3_Laravel Scheduler - Fatal编程技术网

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”那么调度器在本地环境中工作吗?另外,编写您自己的简单命令,记录一些内容并尝试对其进行调度。