Laravel 任务调度器无法正常工作。

3

我尝试在laravel 5.3中运行计划任务,使用以下代码:App/Console/Kernel.php

protected function schedule(Schedule $schedule)
{
    $schedule->command('queue:work')->everyMinute()->withoutOverlapping();
}

我希望能在我的共享托管中设置以下cron jobs:

* * * * * php /home/username/public_html/laravel/artisan schedule:run >> /dev/null 2>&1

但是在我的共享主机上无法运行。
我在队列中使用了数据库驱动程序,但是尝试次数仍然为0,这意味着任务调度程序没有执行队列。
有人可以帮我解决这个问题吗?
3个回答

1

抱歉,我还没有解释过我已经设置了cron作业。我已经设置了cron作业,每分钟运行一次 "* * * * * php /home/username/public_html/laravel/artisan schedule:run > /dev/null 2>&1"。 - brobrobrobrobro
调度程序在您的本地环境中工作吗?此外,编写自己的简单命令以记录某些内容并尝试进行调度。 - Andrius Rimkus

0

0

我在A2hosting上使用共享主机,适用于我的命令是:

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();
    }

您也可以搜索 queue:work 而不是 php artisan queue:work。在 tinker 中运行 shell_exec('ps xf') 并查看结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接