Метод weekdays
Метод weekdays применяется к задаче, определённой в планировщике Laravel,
и ограничивает её выполнение только рабочими днями недели (понедельник - пятница).
Если задача запланирована на выходной день (суббота или воскресенье),
она не будет выполнена. Метод не принимает параметров и возвращает
тот же экземпляр задачи для цепочки вызовов.
Синтаксис
<?php
$schedule->command($command)->weekdays();
$schedule->job($job)->weekdays();
$schedule->call($callback)->weekdays();
?>
Пример
Давайте запланируем выполнение команды для отправки отчётов только в рабочие дни недели:
<?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('reports:send')
->daily()
->weekdays();
}
}
?>
Результат выполнения кода:
"Команда reports:send будет выполняться ежедневно, но только в рабочие дни недели"
Пример
Давайте запланируем выполнение задачи с помощью метода job
только по рабочим дням:
<?php
namespace App\Console;
use App\Jobs\ProcessDataJob;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
protected function schedule(Schedule $schedule)
{
$schedule->job(new ProcessDataJob())
->everyFiveMinutes()
->weekdays();
}
}
?>
Результат выполнения кода:
"Задача ProcessDataJob будет выполняться каждые 5 минут, но только в рабочие дни"
Пример
Давайте запланируем выполнение замыкания для очистки временных файлов только по рабочим дням:
<?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 () {
// Очистка временных файлов
$tempFiles = glob('/tmp/*.tmp');
foreach ($tempFiles as $file) {
unlink($file);
}
return "Очищено " . count($tempFiles) . " файлов";
})
->hourly()
->weekdays();
}
}
?>
Результат выполнения кода:
"Замыкание будет выполняться каждый час, но только в рабочие дни недели"
Смотрите также
-
метод
weekly,
который планирует задачу на выполнение еженедельно -
метод
daily,
который планирует задачу на выполнение ежедневно -
метод
hourly,
который планирует задачу на выполнение каждый час -
метод
schedule-run,
который запускает все запланированные задачи