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

Desarrollador backend especializado en PHP y Laravel, con sede en Santander, Cantabria. Más de 15 años de experiencia en el desarrollo de aplicaciones web a medida y en la modernización de código heredado.

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
1946

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
479

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