¿Cómo puedo guardar el estado de la aplicación para una aplicación node.js que consiste principalmente en una solicitud HTTP?Guardando estado de la aplicación en Node.js
Tengo un script en Node.JS que funciona con una API RESTful para importar un gran número (más de 10.000) de productos en una aplicación de E-Commerce. La API tiene un límite en la cantidad de solicitudes que se pueden realizar y estamos mirando para repasar ese límite. En una ejecución anterior, el script salió con un Error: connect ETIMEDOUT
probablemente debido a exceder los límites de la API. Me gustaría poder conectarme 5 veces y, si eso falla, reanudarlo después de una hora cuando se restableció el límite.
También sería beneficioso guardar el progreso en caso de caída (caída de energía, bloqueo de la red, etc.). Y ser capaz de reanudar el guión desde el punto que dejó.
Sé que Node.js funciona como una cola de eventos gigante, todas las solicitudes http y sus callbacks se ponen en esa cola (junto con algunos otros eventos). Esto lo convierte en un objetivo principal para guardar el estado de la ejecución actual. Otro placer (no totalmente necesario para este proyecto) sería poder distribuir el trabajo entre varias máquinas en diferentes redes para aumentar el rendimiento.
¿Existe alguna forma de hacerlo? Un marco tal vez? O debo implementarlo yo mismo, en ese caso, se agradecerán todos los recursos útiles sobre cómo se puede hacer esto.
Lo que quiere es una * cola de trabajos persistente *. Hay muchos de ellos; uno bastante bueno es [Kue] (http://learnboost.github.com/kue/) (construir en redis). –
Creo que tienes toda la razón. Kue es bastante brillante.Así que básicamente en el productor estaría leyendo mi archivo de datos y en el consumidor podría agregar/actualizar cada producto. Entonces, cada producto sería un trabajo separado. –