繁体   English   中英

Laravel Scheduler与Cron Job

[英]Laravel Scheduler with Cron Job

我将larave 5.1与php5配合使用,我尝试创建我的cron作业以及时删除我想要的未付发票,但是我对其进行了测试以打印出用户日志,以帮助我知道该作业正在运行。

这是我的应用程序/控制台/Kernel.php

protected $commands = [
    \App\Console\Commands\Inspire::class,
    \App\Console\Commands\RemoveUnpaidInvoice::class,
];

protected function schedule(Schedule $schedule)
{
    $schedule->command('removeUnpaidInvoice')->everyMinute();
    // $schedule->command('inspire')->hourly();
}

这是我的RemoveUnpaidInvoice类:

public function handle()
{
    UserLog::create([
        'user_id' => '3',
        'title' => 'Cron Testing',
        'log' => 'Time : ' . date('H:i:s')
    ]);
}

完成文件后,我在终端上运行以下命令以运行cron:

php artisan schedule:run

在运行schedule artisan命令之后,终端将显示以下消息:

Running scheduled command: '/usr/bin/php5' 'artisan' removeUnpaidInvoice > '/dev/null' 2>&1 &

我认为这是可行的,然后我检查数据库以查看是否创建了userlog,并创建了该用户日志,并通过cron添加了新的用户日志。

但是问题是,我等待一分钟,并且未添加任何用户日志,等待了2分钟,3分钟等,没有其他用户日志添加到我的数据库中吗?

如何解决? 我犯错了吗?

启动sheduler

这是您需要添加到服务器的唯一Cron条目:

* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

该Cron将每分钟调用一次Laravel命令调度程序。 然后,> Laravel评估您计划的任务并运行到期的任务。

您需要启动cron,无需运行php artisan schedule:run在控制台中php artisan schedule:run

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM