Node.js Pi-Zero多进程上的节点JS

Node.js Pi-Zero多进程上的节点JS,node.js,raspberry-pi,pm2,Node.js,Raspberry Pi,Pm2,我正在运行raspbian stretch lite的pi zero上使用节点 我基本上希望有两个进程运行,一个进程是保持与服务器的连接打开,以推送和接收诸如offline status之类的消息,另一个进程是扫描iBeacons 创建一个项目,拥有两个JSF文件,并分别使用PM2之类的东西启动它们,这是最佳实践吗?还是最好有两个完全独立的项目?一个进程依赖于另一个进程,因为我将通过开放连接更新要扫描的信标。如果您将应用程序作为两个单独的进程运行 例如,分别运行worker.js和api.js脚

我正在运行raspbian stretch lite的pi zero上使用节点

我基本上希望有两个进程运行,一个进程是保持与服务器的连接打开,以推送和接收诸如offline status之类的消息,另一个进程是扫描iBeacons


创建一个项目,拥有两个JSF文件,并分别使用PM2之类的东西启动它们,这是最佳实践吗?还是最好有两个完全独立的项目?一个进程依赖于另一个进程,因为我将通过开放连接更新要扫描的信标。

如果您将应用程序作为两个单独的进程运行

例如,分别运行
worker.js
api.js
脚本:

module.exports = {
  apps : [{
    name        : "worker",
    script      : "./worker.js",
    watch       : true
  }, {
    name       : "api-app",
    script     : "./api.js",
    instances  : 4,
    exec_mode  : "cluster"
  }]
}
从这个意义上讲,您可以将它们作为一个单独的项目,然后使用PM2的单个配置文件将它们一起启动


如果您的应用程序的复杂性达到了将其拆分的程度,您也可以稍后再这样做。

由于您可能会收到检测到的信标的回调,而且频率不会很高,我会将其作为一个进程来实现。信标的棘手之处在于处理进入/退出区域以避免“口吃”,因此,如果您现在需要这样的粒度,最好每个检测到的计时器都有一个计时器来跟踪进入/退出远/近/立即。将尝试一下。谢谢理想情况下,我确实希望它出现在一个项目中,但不确定它在结构上是否正确,或者是这样做的最佳实践。@SashaStojanovic通常它是基于复杂性,我可能会把它作为一个单独的项目,直到它达到一个点,它们可以解耦到2。我编辑了我的问题,只是为了在关于多进程的DB使用中增加一个方面。Clarence,你有没有进一步的建议?SQLite允许多个进程同时访问一个数据库,只是对数据的更改(写入)是通过锁定控制的,这可能会更慢。是两个进程都在向数据库写入数据,还是只有一个进程在读取数据?我会把这个问题当作一个单独的问题,因为它和原来的要求非常不同。好吧,我已经问过了。