Laravel 5.1任务调度命令问题

4

我正在尝试执行两个控制台命令。以下是我在Kernel.php中的两个命令:

protected function schedule(Schedule $schedule)
{
    $schedule->command('users:get')->everyMinute();

    $schedule->command('users:update')->dailyAt('01:00');
}

当我运行 php artisan schedule:run 命令时,只有那些被设定为 everyMinute 的命令会被执行。

正在执行预定的命令:'/usr/bin/php5' 'artisan' users:get > /dev/null 2>&1 &

如果我将第二条命令的 dailyAt 改为 everyMinute,则两个命令都会被执行,如下所示:

正在执行预定的命令:'/usr/bin/php5' 'artisan' users:get > /dev/null 2>&1 &

正在执行预定的命令:'/usr/bin/php5' 'artisan' users:update > /dev/null 2>&1 &


1
你提到了 dailyAt('01:00'),所以当时间到达01:00并且你运行php artisan schedule:run时,该命令将被执行,否则不会执行。 - Imtiaz Pabel
1个回答

0

php artisan schedule:run 命令将运行预定的命令,而不是列出它们。

因此,如果在 01:00 之前运行预定的命令,则 users:update 命令尚未被预定,也不会被运行。


有没有用于显示计划命令列表的Artisan命令? - karthick
php artisan list 将列出所有的 artisan 命令,并且没有一个命令用于列出计划任务。你想达到什么目的?如果你想从终端检查计划,请直接运行 cat app/Console/Kernel.php 命令。或者,如果你想炫酷一些,你可能可以使用 grephead 或者 sed 组合成一个 shell 脚本,以获取只包含相关行的内容。 - Arvid

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