У меня есть некоторые проблемы с php artisan cron.
В настоящее время задачи находятся в App \ Console \ Commands \ task1.php
, а cron определен в App \ Console \ Kernel.php
Проблема в том, что задача не запускается.
Поэтому я попытался создать новую задачу, используя командную строку: php path/to/artisan make:command task2
и файл создан,но в App \ Commands вместо App \ Console \ Commands.
И при попытке перечислить существующую задачу cron с помощью artisan list
, я получаю только:
vendor:publish Publish any publishable assets from vendor packages
Где следуетЯ поставил свои команды?
А где должен быть файл ядра?
В настоящее время файл Kernel.php:
<?php namespace App\Console;
use App\Commands\Task2;
use App\Console\Commands\Task1;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel {
protected $commands = [
Task1::class,
Task2::class,
];
protected function schedule(Schedule $schedule)
{
$schedule->command('task1')->daily();
$schedule->command(Task2::class)->daily();
}
}
Task1, созданный с помощью командной строки, в App \Папка Commands:
<?php namespace App\Commands;
use Illuminate\Console\Command;
use Illuminate\Contracts\Bus\SelfHandling;
class Task1 extends Command implements SelfHandling {
protected $name = 'task1';
protected $description = 'Task1 test ';
public function handle()
{}
}
Task2, в папке App \ Console \ Commands:
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
class Task2 extends Command {
protected $name = 'task2';
protected $description = 'task 2 test';
public function handle()
{}
}