РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1352 of 1392 menu

Метод withoutOverlapping

Метод withoutOverlapping применяется к запланированным заданиям в классе Schedule и предотвращает запуск нового экземпляра задания, если предыдущий экземпляр всё ещё выполняется. Это полезно для задач, которые могут выполняться дольше, чем интервал их запуска, например, обработка большого объёма данных или синхронизация с внешними API. Метод принимает один параметр - время истечения блокировки в минутах, по умолчанию равное 10 минутам.

Синтаксис

<?php Schedule::command($command)->withoutOverlapping($expiresAt); ?>

Пример

Давайте запланируем выполнение команды 'emails:send' каждую минуту, но предотвратим её перекрытие с помощью withoutOverlapping:

<?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('emails:send') ->everyMinute() ->withoutOverlapping(); } } ?>

Пример

Давайте запланируем выполнение задания каждые пять минут с блокировкой на 30 минут, если предыдущий запуск всё ещё выполняется:

<?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('report:generate') ->everyFiveMinutes() ->withoutOverlapping(30); } } ?>

Пример

Давайте запланируем выполнение задания на выполнение задачи с кастомной функцией и установим блокировку на 15 минут:

<?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 () { echo "Processing data..."; })->hourly()->withoutOverlapping(15); } } ?>

Смотрите также

  • метод command,
    который планирует выполнение Artisan команды
  • метод job,
    который планирует выполнение задания
  • метод call,
    который планирует выполнение произвольной функции
  • метод schedule:run,
    который запускает все запланированные задания
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить