Метод weekly
Метод weekly класса Schedule применяется для настройки выполнения задачи один раз в неделю. Он не принимает параметров и возвращает экземпляр Event для дальнейшей настройки. По умолчанию задача будет выполняться в воскресенье в полночь.
Метод weekly может быть использован в комбинации с другими методами для точной настройки времени выполнения, например, с at, timezone или days для выбора конкретного дня недели.
Синтаксис
<?php
use Illuminate\Console\Scheduling\Schedule;
$schedule->command($command)->weekly();
$schedule->job($job)->weekly();
$schedule->call($callable)->weekly();
?>
Пример
Давайте создадим задачу, которая будет запускать команду inspire каждую неделю:
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
protected function schedule(Schedule $schedule)
{
$schedule->command('inspire')->weekly();
}
}
?>
Результат выполнения кода:
"Task scheduled for weekly execution"
Пример
Давайте запланируем еженедельный запуск Artisan-команды в понедельник в 8:00 утра:
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
protected function schedule(Schedule $schedule)
{
$schedule->command('queue:work')->weekly()->mondays()->at('08:00');
}
}
?>
Результат выполнения кода:
"Command 'queue:work' scheduled for Mondays at 08:00"
Пример
Давайте запланируем еженедельный вызов замыкания в пятницу в 18:00 с указанием часового пояса:
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
protected function schedule(Schedule $schedule)
{
$schedule->call(function () {
\Log::info('Weekly report generated');
})->weekly()->fridays()->at('18:00')->timezone('Europe/Moscow');
}
}
?>
Результат выполнения кода:
"Callback scheduled for Fridays at 18:00 (Europe/Moscow)"