Метод environments
Метод environments применяется к объекту события
в планировщике Laravel и позволяет указать, в каких
окружениях (средах) данная задача может выполняться.
Это полезно для предотвращения случайного запуска
критических задач в неподходящих окружениях, например,
очистки базы данных в боевом окружении.
Синтаксис
<?php
$schedule->command($command)
->environments($env1, $env2);
?>
Метод принимает одно или несколько строковых значений, представляющих собой имена окружений, в которых задача может быть выполнена. Если окружение не совпадает ни с одним из переданных значений, задача будет пропущена.
Пример
Давайте настроим выполнение команды очистки кэша только в локальном окружении:
<?php
use Illuminate\Support\Facades\Schedule;
Schedule::command('cache:clear')
->daily()
->environments('local');
?>
Пример
Давайте запланируем задачу резервного копирования, которая должна выполняться в локальном и тестовом окружениях, но никогда в боевом:
<?php
use Illuminate\Support\Facades\Schedule;
Schedule::command('backup:run')
->weekly()
->environments('local', 'staging');
?>
Пример
Давайте настроим выполнение замыкания только в боевом
окружении с использованием метода call:
<?php
use Illuminate\Support\Facades\Schedule;
Schedule::call(function () {
// Отправить отчёт о продажах
echo "Sales report sent.";
})
->dailyAt('09:00')
->environments('production');
?>
Результат выполнения кода в боевом окружении:
"Sales report sent."
Пример
Давайте рассмотрим полный пример использования
environments внутри файла консольных маршрутов
с несколькими задачами:
<?php
use Illuminate\Support\Facades\Schedule;
// Выполнять только в локальном окружении
Schedule::command('migrate:fresh')
->daily()
->environments('local');
// Выполнять в локальном и тестовом окружении
Schedule::command('telescope:prune')
->hourly()
->environments('local', 'staging');
// Выполнять только в боевом окружении
Schedule::command('backup:run')
->daily()
->environments('production');
?>
Смотрите также
-
метод
daily,
который задаёт ежедневное выполнение задачи -
метод
hourly,
который задаёт ежечасное выполнение задачи -
метод
withoutOverlapping,
который предотвращает повторный запуск задачи -
метод
timezone,
который задаёт часовой пояс для запланированной задачи