Ejecutar una aplicación node.js que tiene varios componentes que se requieren en el archivo index.js principal, como este:
// index.js require('./component-1.js') require('./component-2.js') require('./component-3.js') // ...etc. yield App.init() Básicamente, al require esos componentes, se adjuntan a la App y puedo hacer referencia component-1 dentro del component-2 .
El problema es que el component-2 realiza muchas tareas que requieren mucho tiempo para completarse (de minutos a horas). Entonces, quiero mover component-2 a un trabajador separado. Con Heroku, haría esto en Procfile (diciéndole que gire un banco de pruebas separado):
# Procfile worker: node ./component-2.js Problema: component-2 depende de que el component-1 se haya registrado con la App . Por lo tanto, si quiero ejecutar component-2 como trabajador, también tendré que registrar component-1 dentro del trabajador.
Una solución que probé fue básicamente activar una "mini aplicación" dentro del trabajador separado:
// workers/worker.js require('component-1') require('component-2') yield App.start() Luego haga worker: node workers/worker.js dentro de mi Procfile, pero ahora cada vez que quiero extraer un componente en un trabajador, tengo que rastrear todos los demás componentes de los que depende y moverlos a la "miniaplicación" .
¿Alguna otra buena solución para esto?
Editar
Para aclarar, tanto la App principal como el component-2 dependen del component-1 , pero a la App no le importa component-2 .