Scheduler
Imagine que gestiona la tienda en línea de una tienda de ropa. Cuando un cliente compra la última unidad, el stock de ese producto queda a 0. Para volver a venderlo, tiene que hacer un pedido al proveedor. Supongamos que el proveedor tiene una ventanilla de recepción de pedidos abierta en internet: si la llama a una dirección determinada, el pedido queda registrado. Supongamos también que la tarea de buscar los productos con stock 0 y llamar a esa ventanilla ya la ha creado con un Script. Aun así queda un problema. Hace falta alguien que pulse ese Script una vez al día.
El Scheduler ocupa el lugar de esa persona. Una vez que fija «ejecuta este Script cada día a la misma hora», cada vez que llega esa hora WEEGLOO se encarga de ejecutarlo. Nadie tiene que abrir la pantalla.
Se puede comparar con poner un despertador. Una vez que decide a qué hora sonará, a partir de entonces suena solo cada día a esa hora. En esta página veremos qué se define en un Scheduler, cómo se escribe la hora y con qué permisos se ejecuta, todo ello con el ejemplo del «pedido de stock» de la tienda de ropa.
Tres cosas que definir
En un Scheduler no hay mucho que definir.
- Nombre: sirve para reconocerlo después en la lista. Por ejemplo:
pedido de stock. - El Script a ejecutar: elige un Script que se ejecutará cuando llegue esa hora. Un Scheduler ejecuta un solo Script.
- Cuándo se ejecuta: se trata más abajo, en cómo escribir la hora.
A esto se añade un interruptor para activarlo y desactivarlo. Si lo desactiva, lo guardado se conserva y solo deja de ejecutarse. Así, cuando debe pararlo un tiempo (como durante un periodo de descanso del proveedor), no hace falta eliminarlo.
El Script a ejecutar no se puede cambiar después. Para ejecutar otro Script, cree un Scheduler nuevo. El nombre, la hora y el estado de activación se pueden modificar en cualquier momento.
Cómo escribir la hora
La hora se escribe en cinco casillas. De izquierda a derecha son minuto, hora, día, mes y día de la semana, y * significa «todos».
minuto hora día mes día de la semana
0 9 * * * → cada día a las 9 en puntoEstas son las formas más habituales.
| Valor escrito | Cuándo se ejecuta |
|---|---|
0 0 * * * | cada día a las 0 |
30 9 * * * | cada día a las 9 |
0 * * * * | cada hora en punto |
*/10 * * * * | cada 10 minutos |
0 0 * * 1 | cada lunes a las 0 |
0 0 1 * * | el día 1 de cada mes a las 0 |
La hora se lee en tiempo universal (UTC). No es la hora local: decida primero a qué hora local quiere que se ejecute y luego calcule esa diferencia para escribir el valor. En una zona que va 9 horas por delante del tiempo universal, las 9 de la mañana de ese lugar son 0 0 * * *. El pedido de stock se ejecuta con este valor, es decir, a las 0
En las horas que llevan un día del mes o un día de la semana, ese cálculo puede desplazar también la fecha, así que revíselas una vez más.
Un valor que no se ejecuta nunca no se guarda. Por ejemplo, 0 0 30 2 * apunta al 30 de febrero, y como ese día nunca llega, al intentar guardarlo recibe una respuesta que le pide revisar el valor de nuevo.
Con qué permisos se ejecuta
Cuando un Scheduler ejecuta un Script, esa ejecución se trata como si la hubiera realizado la persona que creó ese Scheduler. Que el Script de pedido de stock lea los productos y llame al proveedor también sucede con las credenciales de esa persona.
Por eso, para crearlo o modificarlo se necesitan dos permisos a la vez.
- El rol (SpaceRole) debe tener permiso para configurar Scheduler.
- Debe tener permiso para ejecutar el Script que ese Scheduler ejecutará.
El segundo se comprueba no solo al crearlo, sino también al modificarlo. Cambiar la hora de ejecución es decidir cuándo se ejecutará ese Script, y activar uno que estaba apagado es poner en marcha su ejecución.
Si la persona que lo creó pierde después ese permiso, el Scheduler se apaga. Si el responsable sale del equipo o su rol se reduce, en la siguiente hora de ejecución WEEGLOO lo comprueba y, sin ejecutarlo, apaga el interruptor. Aunque el permiso vuelva, el interruptor no se enciende de forma automática, así que tiene que volver a activarlo usted mismo.
Consultar el historial de ejecución
Cada vez que un Scheduler se ejecuta, queda un registro. En él consta si esa ejecución fue correcta o fallida. Con este registro comprueba si el pedido de anoche salió realmente.
En la lista aparecen la hora de ejecución y el resultado de cada ejecución. Si pulsa una ejecución que falló mientras se ejecutaba, puede ver el motivo tal cual en el área de error de la pantalla de detalle. Aparece junto con el tiempo que ha tardado, así que con ese texto puede distinguir si fue porque la ventanilla del proveedor no respondió o si se trata de otro problema.
El registro de una ejecución correcta desaparece al cabo de 1 hora, y el de una ejecución fallida, al cabo de 3 días. Las fallidas se conservan más tiempo porque son las que después se acaban consultando. Si es un valor que hay que conservar más tiempo, como el historial de pedidos, guárdelo como Content dentro del Script.
Aunque falle, el Scheduler no se detiene. Si falló porque la ventanilla del proveedor no respondió durante un momento, solo esa ejecución queda registrada como fallida y a la hora siguiente vuelve a ejecutarse.
En qué se diferencia del Webhook
Ambos coinciden en que ejecutan un Script sin que nadie lo pulse. Lo que los diferencia es qué desencadena la ejecución.
- El Webhook se ejecuta cuando ocurre algo. Cuando se da de alta un producto, cuando se publica un contenido.
- El Scheduler se ejecuta cuando llega la hora. Aunque no ocurra nada, cada día a esa hora.
A primera vista, el pedido de stock parece encajar con un Webhook, porque haría el pedido en el mismo instante en que el stock llega a 0. Pero si el stock de un mismo producto llega a 0 en un día, vuelve por una devolución y baja de nuevo a 0, sale un pedido cada vez. Si se revisa todo junto una vez al día, a cada producto le corresponde un solo pedido. El lugar del Scheduler está en las tareas que no deben hacerse «cada vez que surge algo», sino «todo de una vez».
Al contrario, rellenar la descripción en cuanto se da de alta un producto no tiene motivo para posponerse, así que corresponde a un Webhook.
Cosas que conviene saber
- Hay un límite de cantidad. El número de Scheduler que puede tener una sola Organization está fijado según el plan (Free 1, Basic 5, Pro 30, Enterprise ilimitado). Al alcanzar el límite no se pueden crear nuevos, y si elimina los que no usa, vuelve a quedar un hueco libre.
- El número de ejecuciones se comparte con Script. Como lo que hace un Scheduler es ejecutar un Script, cada vez que se ejecuta consume una de las ejecuciones de Script del plan. No hay un límite propio solo para Scheduler. Cuando se agotan esas ejecuciones, los Scheduler que lleguen a partir de entonces no se ejecutan y se apagan. En ese caso, el motivo por el que no pudo empezar queda en el historial de ejecución. Aunque llegue el mes siguiente no se vuelven a activar automáticamente, así que tiene que volver a activarlos usted mismo.
- Las ejecuciones perdidas no se recuperan. Si se salta un día, por ejemplo por un mantenimiento, no se ejecuta dos veces al día siguiente. Vuelve a ejecutarse a partir de la hora siguiente.
- No se puede eliminar un Script que algún Scheduler esté usando. Esto se aplica incluso si ese Scheduler está apagado. Elimine antes ese Scheduler y luego el Script.
Gestionar en el estudio de contenidos
El Scheduler se crea y se gestiona en la pantalla Scheduler del estudio de contenidos. En la lista, cada Scheduler creado aparece en una fila con su nombre, el nombre del Script que va a ejecutar, la expresión cron, Próxima ejecución, el estado, la fecha de modificación y quién lo modificó.

La pantalla también le indica a qué reloj corresponde cada una de las dos casillas. En la cabecera de la casilla que contiene la expresión cron aparece UTC, y en la de Próxima ejecución aparece la zona horaria de quien la mira, con el formato UTC±N. Así puede ver en la misma fila el valor guardado y a qué hora corresponde en su propia hora. En las zonas horarias que van por detrás del tiempo universal, Próxima ejecución puede mostrar el día anterior.
Un Scheduler nuevo se crea con el botón Crear de la parte superior derecha de la lista.
- Pulse el botón Crear de la parte superior derecha de la lista.
- Escriba
pedido de stocken el campo de nombre. - Deje activado Activo. Si lo deja desactivado, se guarda pero no se ejecuta.
- En Script que se ejecutará, elija el Script de pedido de stock.
- En Programación, elija Entrada manual.
- Escriba
0 0 * * *en las cinco casillas. - Pulse el botón Crear de la parte superior derecha para guardarlo.
La pantalla también le muestra al momento cuándo se ejecutará realmente la expresión que ha escrito. Junto al aviso de que la expresión escrita a mano se guarda en tiempo universal (UTC), aparece una vista previa del valor cron que se va a guardar y de la próxima hora de ejecución.

Si pulsa un Scheduler de la lista, se abre la pantalla de detalle de ese Scheduler. La pantalla de detalle se divide en dos pestañas, Log de ejecución y Configuración, y al abrirla por primera vez aparece Log de ejecución. En la pestaña Log de ejecución aparece en una fila cada ejecución realizada hasta ahora, y en cada fila se ven Ejecutado el, el Resultado y el ID de solicitud que identifica esa ejecución. Con el campo Resultado puede ver solo las ejecuciones correctas o solo las fallidas, y si pulsa Actualizar Logs, la lista se vuelve a leer incluida la ejecución que acaba de producirse.

Si pulsa una ejecución, se abre el detalle de esa ejecución. Aquí aparece el Resultado junto con el Código de estado, el tiempo que ha tardado (Duración) y con qué identidad se ejecutó (Run as); si es una ejecución fallida, el motivo aparece tal cual en el área Error. En la parte superior hay insignias que indican a qué Scheduler pertenece esta ejecución y qué Script ha ejecutado, junto con un enlace que lleva a ese Script y el enlace Ver en el log del Script, que muestra esa misma ejecución en el registro del Script.

Qué hacer a continuación
- Script: trata cómo crear el Script que ejecutará el Scheduler y cómo incluir la acción de llamar a un servicio externo, como la ventanilla del proveedor.
- Webhook: trata cómo hacer que se ejecute cuando ocurre un cambio fijado, en lugar de a una hora fijada.
- Roles y permisos: trata cómo incluir en un rol el permiso para configurar Scheduler y el permiso para ejecutar Script.
