Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти
Інше
Події Про нас
Новини 02 липня 2026
1

Метрики воркерів у події WorkerStopping у Laravel 13.18

Laravel 13.18.0 приносить важливі покращення для роботи з чергами, планувальником завдань та інструментами розробки. Оновлення включає метрики воркерів, коректне завершення процесів за сигналами, пріоритетну систему реєстрації команд та виправлення критичних помилок у Number-хелперах.

Метрики воркерів у події WorkerStopping

Подія WorkerStopping тепер передає дві додаткові метрики, які описують роботу воркера перед його зупинкою: jobsProcessed - кількість оброблених завдань протягом життєвого циклу воркера, та lastJobProcessedAt - мікросекундна мітка часу останнього обробленого завдання. Обидві метрики заповнюються незалежно від того, зупинився воркер штатно чи був примусово завершений.

use Illuminate\Queue\Events\WorkerStopping;
Event::listen(function (WorkerStopping $event) {
    $event->jobsProcessed;      // int|null
    $event->lastJobProcessedAt; // int|float|null (microtime), null якщо нічого не оброблено
});

Це дає змогу записувати продуктивність кожного воркера або відправляти метрики при завершенні демона без необхідності інструментувати цикл обробки завдань самостійно. Якщо воркер зупиняється до обробки будь-яких завдань, lastJobProcessedAt залишається null.

Коректне завершення для schedule:work

Команда schedule:work тепер перехоплює сигнали SIGINT, SIGTERM та SIGQUIT. При отриманні сигналу вона припиняє запуск нових запланованих завдань і чекає завершення поточного процесу schedule:run перед виходом, повторюючи існуючу поведінку queue:work. Це особливо важливо в контейнерних середовищах як Kubernetes, де поди отримують SIGTERM при завершенні, а попередня поведінка могла переривати виконувані завдання.

Пріоритетна реєстрація команд для artisan dev

Команди розробки, зареєстровані для artisan dev, тепер відстежують своє походження (ваш застосунок, vendor-пакет або сам фреймворк) і реєструються з відповідним пріоритетом. Коли кілька команд мають однакову назву, реєстрації з користувацького коду перемагають над vendor-версіями, які в свою чергу мають пріоритет над стандартними командами фреймворка, незалежно від порядку завантаження сервіс-провайдерів.

use Illuminate\Foundation\Console\DevCommands;
DevCommands::artisan('reverb:start --host="0.0.0.0"', 'reverb');

Це замінює попередній підхід з блокуванням автореєстрації vendor-команд на явну систему пріоритетів, тому ваші перевизначення завжди спрацьовують. Крім того, artisan dev тепер запускається з опцією --kill-others-on-fail, тож якщо один процес у групі падає, решта зупиняються замість того, щоб продовжувати працювати.

Захист Number-хелперів від INF/NAN

Методи Number::forHumans() та Number::abbreviate() раніше викидали помилку при передачі значень INF або NAN, і Number::fileSize() мав ту саму проблему. Обидва випадки виправлено, тож ці значення тепер опрацьовуються коректно без викидання винятків.

Інші виправлення та покращення

Версія включає низку додаткових виправлень:

  • Додатково зменшено кількість звернень до кешу при використанні debounced jobs
  • Виправлено встановлення заголовків кешу для HEAD-запитів
  • Заборонено спрацювання події restored коли відновлення після soft-delete не вдається
  • Виправлено серіалізацію параметра releaseAfter у middleware RateLimited в методі __sleep()
  • Усунено колізії міток для flexible() lock та defer у TaggedCache
  • Виправлено парсинг JSON для тіл верхнього рівня з нульовими значеннями
  • Додано умовні типи повернення до кількох методів та синхронізовано типи повернення геттерів з дженериками їхніх властивостей

Повний список змін доступний в офіційному changelog та release notes на GitHub.

Коментарі

Увійдіть, щоб залишити коментар

Будьте першим, хто залишить коментар!

Читайте також

Backpack CRUD RCE

Повідомлення про безпеку: неавтентифіковане ін'єктування команд у Backpack\CRUD

Команда Backpack for Laravel опублікувала повідомлення про безпеку: у телеметрії пакета Backpack\CRUD виявлено вразливість, що дозволяла віддалене виконання коду (RCE) без автентифікації. Дослідник безпеки Vishal Shukla (@therawdev) відповідально повідомив про проблему 16 травня 2026 року, і команда розробників випустила виправлення менш ніж за 24 години.

Що нового в PostgreSQL 19: графові запити, GROUP BY ALL і крок до "універсальної" бази даних.

Що нового в PostgreSQL 19: графові запити, GROUP BY ALL і крок до "універсальної" бази даних.

PostgreSQL 19 продовжує важливу тенденцію останніх років: класична реляційна база даних поступово перетворюється на універсальну платформу для роботи з різними типами даних - від JSON до графів і аналітики

Пакети за темою

Laravel Debugbar

barryvdh/laravel-debugbar

Інтеграція PHP Debugbar у Laravel для відлагодження та аналізу роботи додатку.

19,256 v4.3.0 13 6

Horizon

laravel/horizon

Панель управління та програмна конфігурація для черг Laravel.

4,150 v5.47.2 13 5