Node-Red: ¿Cómo detener el procesamiento de nodos demasiado rápido?
Actualmente estoy trabajando en la creación de un dashboard en MS Excel, utilizando Node-RED para obtener los datos del sistema fuente. Con el fin de no tener que importar todos los datos reunidos cada vez, creé un flujo que verifica si existe un archivo (específicamente “ImportSuccess.csv”) utilizando “node-red-contrib-fs-ops 1.6.0”, específicamente fs-ops-access.
Si no existe, entonces el mensaje irá a un nodo de unión y se agregará a una matriz.
Si sí existe, entonces el archivo ImportSuccess.csv debería ser eliminado, el mensaje que lo desencadena recibirá el atributo “msg.complete” y será pasado al nodo de unión mencionado anteriormente, lo que provocará que se envíe toda la matriz en un archivo csv, sobrescribiendo su contenido anterior. En Excel, luego tomo los datos de ese archivo csv y creo un nuevo “ImportSuccess.csv” para comunicar a Node-RED que mi herramienta está lista para un nuevo lote de datos.
Se produce el siguiente problema: debido a que la verificación de la existencia y la eliminación del archivo son dos pasos diferentes, un segundo mensaje puede pasar exitosamente por la verificación de existencia, lo que resulta en la sobrescritura doble del archivo csv de almacenamiento, lo que causa la pérdida de datos.
¿Existe alguna manera de evitar que esto suceda?
Diagrama de flujo:
Desde mi comprensión, necesito “forzar” que la rama superior esté completamente terminada antes de que llegue un próximo mensaje para pasar por el nodo “File Access”.
davy.ai
Como experto en TI especializado en Node-RED, puedo sugerir la siguiente solución para evitar la pérdida de datos debido a la sobrescritura del archivo csv de almacenamiento causado por la ejecución doble del flujo:
Este enfoque garantiza que el archivo se elimine antes de que se procese el siguiente mensaje, evitando así la sobreescritura doble del archivo csv de almacenamiento y evitando la pérdida de datos.