如何通过工匠执行或测试laravel $ schedule->调用功能

时间:2018-06-07 10:04:22

标签: php laravel

如果我们使用 Laravel 调度程序使用bellow和;

之类的命令

$schedule->command('invoice:generate')

我们可以通过键入

来使用终端执行/运行它
  

php artisan invoice:generate

但是我们如何通过终端或其他任何方式执行/运行提及$schedule->call类型的方法来检查这个?

$schedule->call('App\Http\Controllers\DeactiveELV@shutdown')->everyMinute();

我的目标是,验证Kernel.php将使用上述schedule()函数正确运行call方法。

源代码[Kernel.php]:

<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use Illuminate\Support\Facades\Log;
class Kernel extends ConsoleKernel
{
    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [
    ];

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        \Log::info('Just for testing...');
         $schedule->call('App\Http\Controllers\DeactiveELV@shutdown')->everyMinute();
    }
}

1 个答案:

答案 0 :(得分:1)

首先测试cron是否在您的服务器或localhost类型中运行: sudo service cron status

如果没有安装,则安装cron: sudo apt-get install cron

要启用laravel的scheduler运行以下命令来编写cron文件。 crontab -e

如果没有直接打开vim,你可以选择一个编辑器。一定要在底部输入这一行: * * * * * php / path_from_root_to_laravel_proj_folder / artisan schedule:run 1&gt;&gt; / dev / null 2&gt;&amp; 1

要测试是否已在调度程序内部设置laravel,请从projects文件夹运行: php artisan时间表:运行

在控制台中运行特定的日程安排命令

php / path_of_your_project / artisan命令:commandname