Задать вопрос
@IliaMal

Почему не отрабатывает cron через Schedule?

Здравствуйте.

Файл console.php выглядит так:
use Illuminate\Support\Facades\Artisan;
use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Schedule;
 
/*
|--------------------------------------------------------------------------
| Console Routes
|--------------------------------------------------------------------------
|
| This file is where you may define all of your Closure based console
| commands. Each Closure is bound to a command instance allowing a
| simple approach to interacting with each command's IO methods.
|
*/
 
Artisan::command('inspire', function () {
    $this->comment(Inspiring::quote());
 
    Schedule::call(function () {
        $return = 'Сообщение из крона !!';
        $send = new \App\Helpers\Send;
        $send->MessageDev($return);
    })->everyMinute();
 
})->describe('Display an inspiring quote');

При запуске из консоли php artisan schedule:run получаю ответ INFO No scheduled commands are ready to run.

Подумал что просто не попадаю во время, запустил через schedule:work после ожидания результат тот же
INFO Running scheduled tasks every minute.

INFO No scheduled commands are ready to run.


Если Schedule::call убрать из Artisan::command то ошибка Class "Illuminate\Support\Facades\Schedule" not found

В логах ошибок нет, в чем может быть проблема?
  • Вопрос задан
  • 32 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
JhaoDa
@JhaoDa
LaravelRUS Team
Во-первых, код надо добавить в вопрос.

Во-вторых, ты реально не понимаешь, в чём дело? Зачем ты вставил крон-задачу внутрь команды?
Ответ написан
@IliaMal Автор вопроса
Изначально пошел не по верному пути.

Решил так проблему:
Вернул routes/console.php к дефолтному виду,
Создал класс в app/Console/Commands/ php artisan make:command MyCron --command=my:cron
В app/Console/Kernel.php ссылаюсь на свою команду через метод schedule
protected function schedule(Schedule $schedule): void
    {
         $schedule->command('my:cron')->everyMinute();
    }


И все заработало!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы