¿Cómo escalaría un servicio de generación de número de pedido?

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

More Interesting

¿Saltear la universidad (título de CS) es una buena opción si tengo muchas ambiciones de trabajar como desarrollador de Full Stack? Estoy trabajando en React and Node, y quiero conseguir un trabajo inmediatamente después de cumplir 18 años. ¿Qué tengo que hacer?

Tengo conocimientos básicos de C y HTML / CSS. Quiero ir al desarrollo web. ¿Debo aprender PHP o Javascript primero? ¿Qué tutoriales debo seguir para aprenderlos?

He progresado en HTML y CSS. Codeacademy alinea JavaScript como el siguiente, FreeCodeCamp enumera JQuery como el siguiente. ¿Cuál es el mejor siguiente paso y por qué?

Quiero comenzar un sitio web de una sola página para vender mi libro electrónico. ¿Con qué compañía / plan de alojamiento debo ir?

Quiero comenzar un sitio web para reservar hoteles. ¿Sugiere sistemas de reserva que permitan la reserva en línea?

Estoy aprendiendo a ser un desarrollador web full stack. Descubrí que el desarrollo frontend es mucho más difícil que el desarrollo backend. ¿Es esto solo mi error?

Estoy a punto de crear una aplicación para Android y me pregunto si alguno de ustedes recomendaría usar un servicio de back-end como Firebase o Parse, o simplemente escribir el back-end por mi cuenta en Ruby on Rails.

Si guardo mi contraseña en el navegador, ¿está físicamente almacenada en mi PC? En caso afirmativo, ¿dónde se almacena? Si mi PC fue pirateada, ¿pueden los hackers robar la contraseña?

Soy un principiante en diseño web. ¿Es w3schools.com un buen lugar para comenzar?

Cómo ganar dinero si sé HTML, JavaScript, CSS

Comencé a aprender Ruby on Rails el año pasado, pero lo dejé en el medio. ¿Debo comenzar de nuevo y aprender Python y Django o continuar con Ruby and Rails?

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?

Si quiero ser un buen desarrollador web, ¿cuál es la secuencia correcta para aprender lenguajes de programación?

Estoy frustrado. Hace días que no trabajo. ¿Por qué es difícil configurar MySQL, Apache y PHP en una Mac Yosemite?