Supongamos que tengo 2 servidores.¿La mejor manera de crear API REST para tareas de larga duración?
El primero es un servicio que proporciona algunos cálculos, que pueden durar mucho tiempo (de minutos a horas).
El segundo servidor utilizará este servicio para tener algunos datos calculados.
Estoy tratando de diseñar una API REST para el primer servidor y hasta ahora todo bien. Pero me gustaría escuchar algunas opiniones sobre cómo modelar las notificaciones cuando la tarea de larga duración haya finalizado.
Consideré 2 enfoques hasta ahora:
- sondeo - el segundo servidor le pedirá de vez en cuando por el resultado.
- Devolución de llamada: el segundo servidor configurará un uri para que el primero llame después de que finalice. Pero esto huele un poco en REST API.
¿Qué opinas?
¿Sería inherentemente incorrecto utilizar el enfoque de devolución de llamada? Tengo un problema muy similar (excepto que mi servicio puede tardar entre 2 y 500 segundos para responder) y usar una devolución de llamada parece mucho más simple que el sondeo – Johan
Una breve explicación y un enlace a una explicación del Protocolo de publicación Atom mejorarían en gran medida esta respuesta . – Geerten