Programar peticiones HTTP

Una petición HTTP recurrente que lanza el servidor de tu empresa: la sección HTTP CRON, el intervalo dentro y fuera de horario, la llamada, el resultado que guarda y los avisos por correo.

Una petición HTTP programada es un registro de la sección HTTP CRON. El servidor de tu empresa llama a su URL cada cierto número de segundos, dentro del horario y los días que le marques. Guarda el resultado de la última llamada. Sirve para lanzar un escenario de n8n, Make o Zapier a un ritmo fijo, pedir a tu API que sincronice, o comprobar un servicio. Cuando lo que quieres es reaccionar a un cambio, no a un reloj, usa un webhook saliente.

Antes de empezar

  • La URL de destino, que empieza por http o https. Sin ese prefijo el servidor ignora el registro.
  • Si el destino pide autenticación, su token Bearer.
  • Una clave API con permiso sobre la sección HTTP CRON, identificador 2ccf4f1a-ce66-43bd-a49d-b5353343ec13. La sección no tiene pantalla propia en Play: sus registros se crean y se editan por la API o con el SDK, como los de cualquier otra sección. Ver Plataforma y sistema.

Los campos

Los nombres de columna son los de la sección de fábrica; compruébalos en Desarrollo → Esquema (Esquema).

CampoColumnaQué es
NombrenombreEl texto con el que identificas la petición. Aparece en los avisos por correo.
URLpr_40786361020La dirección completa. Obligatoria.
Métodopr_407863610191 para GET, 2 para POST, 3 para PUT. Otro valor se ejecuta como GET.
Bearerpr_40786361018Opcional. El servidor lo envía en la cabecera Authorization: Bearer <token>.
Activopr_607863621 para que se ejecute. Solo se leen los registros activos y no eliminados.
Intervalopr_40786361032Cada cuántos segundos se lanza dentro del horario.
Intervalo fuera de horariopr_40786361031Cada cuánto se lanza fuera del horario y los días no marcados.
Lunes a Domingopr_40786361026, pr_40786361027, pr_40786361025, pr_40786361024, pr_40786361030, pr_40786361023, pr_407863610221 en los días con horario.
Hora inicio, Hora finpr_40786361028, pr_40786361029La franja "dentro de horario", como HH:mm:ss. Las dos vacías cuentan como el día entero.
Última ejecución, Último código de estado, Última duraciónpr_50786366, pr_10786781002, pr_10786781001Los escribe el servidor tras cada llamada.

Los campos de programación llevan un autorrellenado fijo en el formulario de la sección: todos los días, de 07:00 a 23:00, cada 30 segundos dentro de horario y cada 300 fuera, método GET, activo. Escribe el registro con scripts=false para que esos valores fijos no sobrescriban los tuyos.

Crear la petición

Prepara el destino

Deja lista la URL y, si hace falta, el token. El destino recibe la llamada sin cuerpo: si necesita datos, ponlos en la propia URL como parámetros.

Crea el registro

Un POST /api/writeoperations a la sección HTTP CRON con scripts=false. Este ejemplo llama cada 5 minutos de lunes a viernes de 08:00 a 20:00, y cada hora el resto del tiempo:

curl -X POST "https://<clave-de-conexion>.dinaup.io/api/writeoperations?sectionId=2ccf4f1a-ce66-43bd-a49d-b5353343ec13&FieldPrimary=id&scripts=false" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d "{\"id\": \"\", \"nombre\": \"Sincronizar pedidos\", \"pr_40786361020\": \"https://tu-servidor.com/sync\", \"pr_40786361019\": \"2\", \"pr_40786361018\": \"<token-del-destino>\", \"pr_60786362\": \"1\", \"pr_40786361032\": \"300\", \"pr_40786361031\": \"3600\", \"pr_40786361026\": \"1\", \"pr_40786361027\": \"1\", \"pr_40786361025\": \"1\", \"pr_40786361024\": \"1\", \"pr_40786361030\": \"1\", \"pr_40786361023\": \"0\", \"pr_40786361022\": \"0\", \"pr_40786361028\": \"08:00:00\", \"pr_40786361029\": \"20:00:00\"}"

El servidor relee la lista de peticiones activas en cuanto cambia la sección. La primera llamada sale en el siguiente barrido, unos 10 segundos después.

Comprueba el resultado

Lee el registro por la API o con un informe sobre la sección. Último código de estado trae el código HTTP que respondió el destino; Última duración, los milisegundos; Última ejecución, la fecha en UTC.

Cada cuánto se ejecuta

El servidor barre las peticiones activas cada 10 segundos, con hasta 100 registros por barrido, y decide para cada una si le toca:

SituaciónIntervalo que aplica
Día marcado y hora dentro de la franjaIntervalo.
Día marcado y hora fuera de la franjaIntervalo fuera de horario.
Día sin marcarIntervalo fuera de horario.
Intervalo 0Ese tramo no se ejecuta. Con los dos intervalos a 0 la petición no sale nunca.
Intervalo menor que 10Se ejecuta cada 10 segundos.

La hora es la hora local de tu empresa. Una petición que nunca se ha ejecutado sale en el primer barrido; a partir de ahí, cuando desde la última ejecución han pasado tantos segundos como marca el intervalo.

La llamada

DetalleValor
MétodoGET, POST o PUT, según el campo Método.
CuerpoVacío. POST y PUT salen sin contenido.
CabecerasSolo Authorization: Bearer <token> si el campo Bearer está relleno.
Tiempo de espera30 segundos.
SolapamientoMientras una llamada está en curso no se lanza otra de la misma petición.

El resultado y los avisos

Tras cada llamada el servidor guarda tres datos en el registro:

CampoQué ves
Última ejecuciónFecha y hora de la llamada, en UTC.
Último código de estadoEl código HTTP del destino, o -1 si no respondió a tiempo o falló la conexión.
Última duraciónLo que tardó, en milisegundos.

Un código fuera de 2xx cuenta como fallo. Tras 5 fallos seguidos, o 15 minutos fallando, Dinaup envía un correo a tu empresa con el asunto Tu tarea programada '<nombre>' ha dejado de funcionar. Cuando el destino vuelve a responder 2xx, envía Tu tarea programada '<nombre>' vuelve a funcionar con el tiempo que estuvo caída. Una sola respuesta buena reinicia la cuenta de fallos.

CódigoQué revisar
2xxNada: funciona.
401 o 403El token del campo Bearer.
404La URL.
-1El destino no responde en 30 segundos o no acepta la conexión.

Aunque tu empresa tenga varios servidores, cada petición sale una sola vez: las peticiones programadas solo las lanza el servidor activo.

Cron o webhook

NecesitasUsa
Que Dinaup te llame cada X minutos, pase lo que pasePetición HTTP programada.
Enterarte de que un registro se creó o cambióWebhook saliente.
Que tu sistema pregunte a Dinaup cada X minutosTu propio programador contra la API REST.

Relacionado

En esta página