Метод call
Метод call класса Schedule применяется для регистрации вызова произвольной функции или метода класса в планировщике. Первым параметром передаётся вызываемая функция в виде замыкания или строка с именем класса и метода. Планировщик будет выполнять этот код с заданной периодичностью.
Синтаксис
<?php
Schedule::call(callable $callback, array $parameters = []);
?>
Пример
Давайте зарегистрируем выполнение замыкания, которое выводит сообщение в лог-файл каждую минуту:
<?php
use Illuminate\Support\Facades\Schedule;
use Illuminate\Support\Facades\Log;
Schedule::call(function () {
Log::info('Scheduled task executed successfully');
})->everyMinute();
?>
Пример
Выполним метод класса UserService каждый час. Убедимся, что метод очищает устаревшие данные:
<?php
use Illuminate\Support\Facades\Schedule;
use App\Services\UserService;
Schedule::call([UserService::class, 'cleanup'])->hourly();
?>
Результат выполнения кода в лог-файле:
"User data cleanup completed: 10 records removed"
Пример
Передадим параметры в вызываемую функцию. Запланируем задачу с числовыми параметрами для обработки данных:
<?php
use Illuminate\Support\Facades\Schedule;
use App\Services\DataProcessor;
Schedule::call(function ($limit, $offset) {
$processor = new DataProcessor();
return $processor->processBatch($limit, $offset);
}, [50, 0])->everyFiveMinutes();
?>
Смотрите также
-
метод
command,
который запускает Artisan-команду из планировщика -
метод
job,
который ставит в очередь задачу -
метод
daily,
который устанавливает ежедневное выполнение -
метод
everyMinute,
который устанавливает выполнение каждую минуту