如何在localhost窗口中测试我的cron作业? (laravel 5.3)

时间:2017-01-09 11:40:02

标签: php laravel cron laravel-5.3 scheduling

我通过编辑app \ Console \ Kernel.php在laravel 5.3上创建一个cron作业,如下所示:

<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use DB;

class Kernel extends ConsoleKernel
{
    protected $commands = [
        //
    ];

    protected function schedule(Schedule $schedule)
    {
        $schedule->call(function () {
            $id = 1;
            DB::table('orders')
              ->where('id', $id)
              ->update(['status ' => 2, 'canceled_at' => date("Y-m-d H:i:s")]);
        })->everyMinute();
    }

    protected function commands()
    {
        require base_path('routes/console.php');
    }
}

我试图检查数据库中的表,但它没有更新

我如何测试我的cron作业?

3 个答案:

答案 0 :(得分:4)

您可以按照以下步骤操作:

1)您可以在cmd中运行php artisan list命令并找到您的cron。

2)找到你的cron后,你可以运行php artisan yourcron

您可以按照此link了解有关cron作业的更多详细信息。

希望这对你有用!

答案 1 :(得分:0)

转到项目目录并运行

php /path/to/artisan schedule:run

有关这方面的更多信息:https://laravel.com/docs/5.3/scheduling

答案 2 :(得分:0)

嘿,你也可以在定义cron时创建日志文件。因为我创造了我的......

* * * * * php /var/www/html/sharep/artisan ElasticSearch:ElasticSearchData >> /var/www/html/sharep.log 2>&1
这个cron在1分钟后运行。如上所述,日志保存在.log文件中。