Покращення керування чергами за допомогою події JobQueueing у Laravel

Перекладено ШІ 0 Laravel News 16 квітня, 2025

Відкрийте для себе новий рівень управління чергами в Laravel з допомогою події JobQueueing, яка дозволяє контролювати завдання перед їх відправленням у чергу. Не пропустіть можливість дізнатися, як впровадження цієї функціональності може суттєво покращити моніторинг та управління вашими завданнями

Система черг Laravel стала ще потужнішою завдяки новій події JobQueueing. Цей хук для попереднього відправлення відкриває нові можливості для моніторингу та управління завданнями ще до того, як вони потраплять до вашої черги.

Подієва архітектура системи черг Laravel вже має кілька хуків життєвого циклу, таких як JobProcessing та JobProcessed. Подія JobQueueing розширює ці можливості, дозволяючи отримати доступ до ранньої стадії — саме тоді, коли завдання готуються до відправлення постачальнику черги.

Ось простий приклад реалізації цієї нової події:

use Illuminate\Queue\Events\JobQueueing;
use Illuminate\Support\Facades\Event;

// Реєструємо обробник для події JobQueueing
Event::listen(function (JobQueueing $event) {
    // Отримуємо інформацію про чергове завдання
    $job = $event->job;
    $connectionName = $event->connectionName;
    $payload = $event->payload;

    // Виконуємо попередню логіку черги
});

Ця функція відкриває безліч практичних застосувань для управління та моніторингу черг. Наприклад, ви можете впровадити логування черг, орієнтоване на середовище:

<?php

namespace App\Providers;

use Illuminate\Queue\Events\JobQueueing;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Log;

class AppServiceProvider extends ServiceProvider
{
    public function boot(): void
    {
        // Створюємо локальний логгер для завдань
        Event::listen(function (JobQueueing $event) {
            if (app()->environment('local')) {
                Log::info('Queueing job', [
                    'job' => get_class($event->job),
                    'connection' => $event->connectionName,
                    'queue' => $event->payload['queue'] ?? 'default'
                ]);
            }
        });
    }
}

Цей підхід дозволяє командам створювати докладні інформаційні панелі активності черг або впроваджувати спеціалізовану логіку, що виконується безпосередньо перед тим, як завдання потраплять до системи черг. Ви можете розширити це, додаючи метадані до завдань, запроваджуючи обмеження швидкості для певних типів завдань або динамічно перенаправляючи завдання до різних черг залежно від навантаження на систему

Популярні

Інше, що варто прочитати

15 Оновлено 02 червня, 2026

Простий пакет RabbitMQ для Laravel

Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!

11 Оновлено 02 червня, 2026

Управління доступом у Filament за допомогою плагіна Shield

Дізнайтеся, як пакет Filament Shield забезпечує управління доступом до ваших панелей, ресурсів і віджетів у Laravel. Ця стаття розкриває основні можливості пакету, включаючи просту установку та підтримку багатокористувацьких середовищ — не пропустіть!

12 Оновлено 02 червня, 2026

Удосконалюйте свої проєкти Laravel за допомогою справжнього штучного інтелекту для кодування з Laravel Boost!

Готові підняти свій робочий процес у Laravel на новий рівень? У цій статті я розгляну Laravel Boost, інноваційний AI-допомічник для програмування, який зробить вашу розробку швидшою та продуктивнішою