gpt4 book ai didi

node.js - Forever.js 启动和重启多个脚本

转载 作者:搜寻专家 更新时间:2023-10-31 22:36:42 38 4
gpt4 key购买 nike

我的网络应用有 3 个主要的 node.js 组件:网站、提要和工作。

为了开始这些,我一直在使用:

//forever.js

var forever = require('forever');

function start(name){

forever.start( ['coffee', name + '.coffee'], { /* log options */ } )

};

start('website');
start('feeds');
start('jobs');

我首先注意到的是,如果我运行脚本,它不会将其作为守护进程运行。 (这很可能是正常的)

node forever.js

所以我接下来要做的是使用 forever 运行 forever.js 脚本。我不确定这是否正确,还有一个 forever.startDaemon,所以不确定我应该使用哪个。

forever start forever.js

这可行,但问题是我想在我的应用程序的新版本发布时重新启动所有进程。我第一次使用 git 的接收后 Hook 来运行 forever.js,但如果我在每次接收后都这样做,它每次只会产生 3 个进程。

所以我想我需要一种方法来重新启动 3 个进程(如果它们已经在运行)。我想用 forever.list 做到这一点,但文档只说:

forever.list (format, callback)

Returns a list of metadata objects about each process that is being run using
forever. This method is synchronous and will return the list of metadata as such.
Only processes which have invoked forever.startServer() will be available from
forever.list()

首先,我不确定格式是什么意思,其次,它需要一个回调,但它说它是同步的。这有点令人困惑,我不确定如何使用列表。

最后我想做的就是在 git 的接收后 Hook 上启动/重启 3 个 node.js 进程。

最佳答案

我认为最好的方法是:

forever start website.js
forever start feeds.js
forever start jobs.js

然后在你的 git post-receive Hook 中:

forever restart website.js
forever restart feeds.js
forever restart jobs.js

将这些 Node 进程包装在一个进程中并不是一个好主意。我现在个人使用 Supervisord with monit而不是永远(supervisord 比永远恕我直言更稳定和强大)。

关于node.js - Forever.js 启动和重启多个脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10065024/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com