Monitoreo de tareas mejorado con los métodos condicionales de ping de Laravel

  • Publicado el 20 enero, 2025
  • Palabras: 41

Tome el control de la supervisión de tareas programadas con las últimas incorporaciones al programador de Laravel. Estos nuevos métodos condicionales de ping facilitan la notificación a los servicios sobre el estado de las tareas cuando es necesario.

Monitoreo de tareas mejorado con los métodos condicionales de ping de Laravel

#Uso básico

Configurar notificaciones de ping condicionales:

 

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

 

#Ejemplo práctico

A continuación se explica cómo implementar una supervisión de tareas integral:

 

class TaskScheduler
{
    public function registerTasks()
    {
        // Configuration
        $monitoringEnabled = config('monitoring.enabled');
        $baseUrl = config('monitoring.webhook_url');
        
        // Database backup task
        Schedule::command('backup:run')
            ->daily()
            ->at('01:00')
            ->pingBeforeIf($monitoringEnabled, "{$baseUrl}/backup/starting")
            ->pingOnSuccessIf($monitoringEnabled, "{$baseUrl}/backup/finished")
            ->pingOnFailureIf($monitoringEnabled, "{$baseUrl}/backup/failed");

        // Cache cleanup task
        Schedule::command('cache:prune-stale-tags')
            ->weekly()
            ->sundays()
            ->at('00:00')
            ->pingBeforeIf($monitoringEnabled, "{$baseUrl}/cache/starting")
            ->pingOnSuccessIf($monitoringEnabled, "{$baseUrl}/cache/finished")
            ->pingOnFailureIf($monitoringEnabled, "{$baseUrl}/cache/failed");
            
        // Report generation
        Schedule::job(new GenerateWeeklyReport)
            ->weekly()
            ->mondays()
            ->at('05:00')
            ->pingBeforeIf(
                $monitoringEnabled && app()->environment('production'),
                "{$baseUrl}/reports/starting"
            )
            ->pingOnSuccessIf(
                $monitoringEnabled && app()->environment('production'),
                "{$baseUrl}/reports/finished"
            )
            ->pingOnFailureIf(
                $monitoringEnabled && app()->environment('production'),
                "{$baseUrl}/reports/failed"
            );
    }
}

 

Estos métodos condicionales de ping proporcionan una supervisión de tareas flexible que se puede habilitar o deshabilitar fácilmente según su entorno o configuración.

Antonio Jenaro
Antonio Jenaro

Web Developer

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

Automatización de copias de seguridad de bases de datos con el Programador de tareas de Laravel y almacenarlas en la nube
1832

Automatización de copias de seguridad de bases de datos con el Programador de tareas de Laravel y almacenarlas en la nube

Gestión de la salida de tareas programadas en Laravel
455

Gestión de la salida de tareas programadas en Laravel

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión