Scheduled Jobs
GurzBrain corre jobs automáticos vía php artisan schedule:run (cron cada minuto).
Jobs activos
| Comando | Cadencia | Propósito |
|---|---|---|
gurzbrain:brief:daily |
6am DO | Resumen diario del hub |
gurzbrain:digest:weekly |
Domingo 8am DO | Agregado semanal |
gurzbrain:report:weekly |
Domingo 8am DO | Health score 0-100 cross-system |
gurzbrain:backup |
Diario 2am DO | Backup local via spatie |
gurzbrain:backup:verify |
Diario 7am DO | Verifica fresco < 36h + offsite B2 |
gurzbrain:cost:calculate |
1ro de mes 7am | Infra cost vs vendors |
gurzbrain:deps:check |
Miércoles 4am | composer outdated cross-hub |
gurzbrain:vuln:scan |
Diario 5am | composer audit vulnerabilities |
gurzbrain:kuma:sync |
Cada 2min | Monitors Kuma status |
gurzbrain:domains:watch |
Lunes 9am | WHOIS + SSL expiry 14 dominios |
gurzbrain:payments:reconcile |
Diario 6am | Stripe vs DB local |
gurzbrain:selfheal |
Cada hora | Fix issues conocidos |
gurzbrain:guardian |
Cada 5min | Prompt injection defense |
Añadir job propio
En bootstrap/app.php → withSchedule(function (Schedule $schedule) { ... }):
$schedule->command('mi:comando')->dailyAt('03:00');
O vía Laravel 11+ attributes:
#[\Illuminate\Console\Scheduling\Schedule]
class MiComando extends Command { ... }
Monitoring
Cada run se persiste en tabla scheduled_runs con job_name, status, output, duration_sec, ran_at. Visible en dashboard /gurzbrain sección "Scheduled Runs".