我正在编写一个 Node 应用程序,它由一个生产者组成,该生产者接受休息调用并将它们作为作业弹出到作业队列中。然后还有许多工作应用程序将使用队列中的消息并执行其长时间运行的任务。生产者可能会在一台服务器上运行,工作人员将在多台服务器上运行(使用 PM2 保持事件状态并管理线程)。
我正在寻求一些关于如何最好地构建应用程序的建议,因为一旦部署,就需要在至少一台服务器上运行两个应用程序(生产者和消费者)。
是否最好将项目中的组件完全分离到像这样的文件夹中......
ProjectRoot
|
+--producer
| +--bin
| +--node_modules
| |--app.js
|
+--consumer
| +--bin
| +--node_modules
| |--app.js
或者我仍然可以使用一些通用组件,例如,将 node_modules
以及可能的 common
带到项目根级别?就像这样...
ProjectRoot
|
+--node_modules
+--common
+--producer
| +--bin
| |--app.js
|
+--consumer
| +--bin
| |--app.js
我意识到这个问题可以被认为是基于主观/意见的,但这是我真正追求的最佳实践。
最佳答案
您最终应该将node_modules文件夹保留为单个资源,以防万一您有很多通用模型等。
如果你还没有开始设计结构,我建议使用 sails 作为主要框架。您可以在项目文件夹中创建 Controller 、模型、配置。然后创建另一个目录“worker”并再次导入 sails 即可。一旦 Sails 应用程序被解除,您将自动获得您的模型、服务,请参阅here ,例如。
关于javascript - 一个项目中的多个 Node.js 应用程序 - 一些建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29646429/