Usaría unas 50 líneas de nodo js para escribir un servidor http agrupado. Dentro de la devolución de llamada de solicitud, borro inmediatamente el tiempo de espera anterior. Compruebo cuántas acciones pendientes hay en la cola y la última vez que se procesó la cola. Si la cola está vacía, le escribo y establezco el tiempo de espera para la ejecución. Si el tiempo de espera caduca antes de la siguiente solicitud, bloqueo la cola, lo que indica a las nuevas solicitudes entrantes que escriban en una cola tmp. Mientras la cola está bloqueada, estoy tomando cada solicitud pendiente y generando el número aleatorio. Una vez que se han generado todos los números aleatorios, llamo a la cola de la base de datos con las órdenes pendientes. Luego devuelvo las respuestas. No quiero usar nodejs para cálculos pesados, así que llamo a un programa con exec y paso la cola como argumentos, probablemente en json o en algún otro formato serializado. Es este programa externo el que genera los números de pedido reales. Nodejs simplemente actúa como una simple cola de servidor, manteniendo todo sincronizado pero permitiendo operaciones por lotes para situaciones de alta carga con latencia teórica mínima. Cuando este programa devuelve datos, actúo en la cola por última vez y escribo la respuesta para cada solicitud. Luego elimino los datos almacenados de la cola y copio la cola TN a la cola. Luego se elimina la bandera de bloqueo de la cola. Esta es mi estrategia básica para tal programa
¿Cómo escalaría un servicio de generación de número de pedido?
Related Content
More Interesting
Soy un principiante en diseño web. ¿Es w3schools.com un buen lugar para comenzar?
Cómo ganar dinero si sé HTML, JavaScript, CSS
Sé C ++ y Java, ¿cuál es el mejor sitio web para mejorar mis habilidades de codificación?
¿Por qué necesito un sitio receptivo cuando tengo un sitio móvil?