Laravel 5任务调度每分钟运行一个任务,而不考虑调用的方法


Laravel 5 Task Scheduling runs a task evey minute, regardless of method invoked

我对Laravel 5的一个奇怪行为感到困惑。我将其添加到'app'Console'Kernel.php:

protected function schedule(Schedule $schedule)
{
    //$schedule->command('inspire')->hourly();
    $schedule->command(Utilsclass::log_line("CROM JOB EXECUTED @ ".date('l jS 'of F Y h:i:s A')))->monthly();
}

我希望每个月在我的日志上看到一次活动,但这就是我在log.txt上看到的:

CROM作业于2015年12月29日星期二下午03:32:01 执行

CROM作业于2015年12月29日星期二下午03:33:01 执行

CROM作业于2015年12月29日星期二下午03:34:01 执行

CROM作业于2015年12月29日星期二下午03:35:01 执行

CROM作业于2015年12月29日星期二下午03:36:01 执行

CROM作业于2015年12月29日星期二下午03:37:01 执行

CROM作业于2015年12月29日星期二下午03:38:02 执行

CROM作业于2015年12月29日星期二下午03:39:01 执行

CROM作业于2015年12月29日星期二下午03:40:01 执行

所以每分钟,不管使用什么方法。事实上,使用daily()hourly()根本没有区别。

除了对Laravel很陌生之外,我不知道如何找出一个问题,这对我来说似乎是一个bug…

有什么帮助吗?

您应该使用闭包来每天执行此代码,而不是每次执行cron:

$schedule->call(function () {
            Utilsclass::log_line("CROM JOB EXECUTED @ ".date('l jS 'of F Y h:i:s A'));
        })->daily();