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: Dinaup llama a su URL cada cierto número de segundos, en el horario y los días que le marques, y guarda el resultado de la última llamada. Para reaccionar a un cambio y no a un reloj, usa un webhook saliente.
Antes de empezar
- La URL de destino, que empieza por
httpohttps. Sin ese prefijo el registro se ignora. - Una clave API con permiso sobre la sección HTTP CRON (
2ccf4f1a-ce66-43bd-a49d-b5353343ec13). La sección no tiene pantalla en Play: sus registros se crean y editan por la API o con el SDK.
Los campos
Las columnas son las de la sección de fábrica, también en Desarrollo → Esquema (Esquema).
| Campo | Columna | Qué es |
|---|---|---|
| Nombre | nombre | Aparece en los avisos por correo. |
| URL | pr_40786361020 | La dirección completa. Obligatoria. |
| Método | pr_40786361019 | 1 para GET, 2 para POST, 3 para PUT. Otro valor se ejecuta como GET. |
| Bearer | pr_40786361018 | Opcional. Viaja en la cabecera Authorization: Bearer <token>. |
| Activo | pr_60786362 | 1 para que se ejecute. Solo se leen los registros activos y no eliminados. |
| Intervalo | pr_40786361032 | Cada cuántos segundos se lanza dentro del horario. |
| Intervalo fuera de horario | pr_40786361031 | Cada cuánto se lanza fuera del horario y los días no marcados. |
| Lunes a Domingo | pr_40786361026, pr_40786361027, pr_40786361025, pr_40786361024, pr_40786361030, pr_40786361023, pr_40786361022 | 1 en los días con horario. |
| Hora inicio, Hora fin | pr_40786361028, pr_40786361029 | La 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ón | pr_50786366, pr_10786781002, pr_10786781001 | Los escribe Dinaup tras cada llamada: la fecha en UTC, el código HTTP del destino y los milisegundos. El código -1 es que el destino no respondió en 30 segundos o no aceptó la conexión. |
Los campos de programación tienen un autorrellenado fijo (todos los días, de 07:00 a 23:00, cada 30 segundos dentro de horario y cada 300 fuera, GET, activo). Escribe el registro con scripts=false para que no sobrescriba tus valores.
Crear la petición
Prepara el destino
El destino recibe la llamada sin cuerpo: si necesita datos, ponlos en la 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\"}"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, Última duración y Última ejecución.
Cada cuánto se ejecuta
Dinaup barre las peticiones activas cada 10 segundos, hasta 100 por barrido:
| Situación | Intervalo que aplica |
|---|---|
| Día marcado y hora dentro de la franja | Intervalo. |
| Día marcado y hora fuera de la franja | Intervalo fuera de horario. |
| Día sin marcar | Intervalo fuera de horario. |
Intervalo 0 | Ese tramo no se ejecuta. Con los dos intervalos a 0 la petición no sale nunca. |
| Intervalo menor que 10 | Se ejecuta cada 10 segundos. |
La hora es la local de tu empresa. Una petición nueva sale en el primer barrido; después, cuando han pasado los segundos del intervalo desde la última ejecución.
La llamada
| Detalle | Valor |
|---|---|
| Método | GET, POST o PUT, según el campo Método. |
| Cuerpo | Vacío. POST y PUT salen sin contenido. |
| Cabeceras | Solo Authorization: Bearer <token> si el campo Bearer está relleno. |
| Tiempo de espera | 30 segundos. |
| Solapamiento | Mientras una llamada está en curso no se lanza otra de la misma petición. |
Avisos por correo
Un código fuera de 2xx cuenta como fallo. Tras 5 fallos seguidos, o 15 minutos fallando, Dinaup envía a tu empresa un correo 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 caído. Una respuesta buena reinicia la cuenta de fallos.