Використання умовних методів Ping у Laravel для моніторингу завдань

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 21 березня, 2025
Laravel пропонує потужні методи умовного моніторингу для планувальника, що дозволяє вибірково контролювати заплановані завдання вашого застосунку. Ознайомтеся, як ці нові функції можуть значно покращити контроль за виконанням ваших задач у статті!

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

Ось базовий приклад, як можна умовно сповіщати служби моніторингу:

Schedule::command('backup:run')->hourly()
    ->pingBeforeIf($condition, $url . '/starting')
    ->pingOnSuccessIf($condition, $url . '/finished')
    ->pingOnFailureIf($condition, $url . '/failed');

Далі наведено приклад налаштування моніторингу, специфічного для середовища, у складному застосунку:

class ApplicationScheduler
{
    public function configure()
    {
        // Визначення середовища
        $isProd = app()->environment('production');
        $isDev = app()->environment('development', 'local');
        $monitoringUrl = config('services.monitoring.url');
 
        // Синхронізація даних клієнтів
        Schedule::job(new SyncCustomerData)
            ->dailyAt('03:30')
            ->pingBeforeIf($isProd, "{$monitoringUrl}/sync/customers/start")
            ->pingOnSuccessIf($isProd, "{$monitoringUrl}/sync/customers/success")
            ->pingOnFailureIf($isProd || $isDev, "{$monitoringUrl}/sync/customers/error");
 
        // Обробка аналітики
        Schedule::command('analytics:process')
            ->hourlyAt(15)
            ->pingBeforeIf($isProd && now()->isWeekday(), "{$monitoringUrl}/analytics/start")
            ->pingOnSuccessIf($isProd && now()->isWeekday(), "{$monitoringUrl}/analytics/complete")
            ->pingOnFailureIf(true, "{$monitoringUrl}/analytics/failed");
 
        // Перевірка стану системи
        Schedule::command('system:health-check')
            ->everyFiveMinutes()
            ->pingOnFailureIf(true, "{$monitoringUrl}/system/health-check-failed");
    }
}

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

Популярні

Logomark Logotype

Перетворення даних у типобезпечні DTO за допомогою пакету Data Model

Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю

Logomark Logotype

4 поширені помилки Vite у Laravel

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

Logomark Logotype

Nuxt 3 + Laravel Sanctum: Просте та надійне рішення для автентифікації вашого SPA та API

У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту