 
                                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.
 
                #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.
 
    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.
Fuente: Harris Raftopoulos
Artículos relacionados
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión
 
            