Dilohost Docs

Workers y tareas programadas

Procesos que corren siempre, como una cola de trabajos, y comandos que se ejecutan con un horario, como el programador de Laravel. Usan el código y las variables de una app ya publicada.

Actualizado el 11 de octubre de 2026 Ver en Markdown

Muchas apps necesitan algo más que atender visitas: procesar una cola de correos, generar informes por la noche o limpiar datos cada hora. En Dilohost eso se hace con dos tipos de proceso que salen del código de una app ya publicada.

Tipo Qué es Ejemplo
Worker Un proceso que corre siempre y se reinicia si se cae. php artisan queue:work, node worker.js, celery -A app worker
Tarea programada Un comando que se ejecuta con un horario. php artisan schedule:run cada 5 minutos, un informe a las 3:00

No hace falta supervisor, cron ni nada parecido dentro de tu app: Dilohost se ocupa de arrancarlos.

Antes de empezar

  • La app de la que salen tiene que estar publicada (y no suspendida).
  • Cada worker y cada tarea cuenta como un recurso más en el límite de apps de tu plan. En el plan Gratis, que admite una sola app con servidor, no queda sitio para workers ni tareas. Ver Planes y precios.

Añadir un worker

Añade un worker a la tienda que ejecute «php artisan queue:work» con el código de la app web.

El agente usa jobs.add_worker con un nombre para el worker (1-20 minúsculas y números), la app de la que sale y el comando. El worker:

  • usa la misma versión del código y las mismas variables que su app, y se actualiza solo cuando publicas una versión nueva;
  • se reinicia si el proceso termina o falla.

Añadir una tarea programada

Programa «php artisan schedule:run» cada 5 minutos en la tienda.

El agente usa jobs.add_cron con el comando y el horario en formato cron de 5 campos, en hora de Madrid:

Horario Cuándo
*/5 * * * * Cada 5 minutos
0 * * * * Cada hora, en punto
30 3 * * * Todos los días a las 3:30
0 9 * * 1 Los lunes a las 9:00
0 0 1 * * El día 1 de cada mes a medianoche

Reglas:

  • Como mínimo cada 5 minutos. Un horario más frecuente se rechaza.
  • Solo números, *, rangos (1-5), listas (1,15) y pasos (*/10).
  • Si una ejecución sigue en marcha cuando toca la siguiente, la siguiente no empieza: nunca se solapan.
  • Cada ejecución puede durar como mucho una hora. Si falla, no se reintenta: vuelve a ejecutarse en la siguiente hora prevista por su horario.

Consejo

En Laravel basta con una tarea: php artisan schedule:run cada 5 minutos, y los horarios los sigues definiendo en tu código. Como schedule:run solo ejecuta lo que toca en el minuto en que se lanza, programa tus tareas en minutos múltiplos de 5 (everyFiveMinutes(), hourly(), dailyAt('03:30')…): una a las 3:07 no se ejecutaría nunca.

Ver y quitar

¿Qué workers y tareas tiene la tienda?

jobs.list enseña cada uno con su tipo, la app de la que sale, el comando y el horario.

Quita la tarea de informes de la tienda.

jobs.remove pide confirmación y deja de ejecutarlo. La app de la que sale no se toca.

Ver lo que hacen

La salida de un worker o de una tarea se lee igual que la de una app:

Enséñame los últimos registros del worker «cola» de la tienda.

El agente usa app.logs con el nombre del worker o de la tarea. Ver Diagnóstico.

Relacionado