我有一个Node.js
游戏服务器,我通过运行nodemon app.js
启动它。现在,每次编辑文件时,服务器都会重新启动。我已经实现了save
和load
函数,我希望每次游戏服务器重新启动(由于文件chages)游戏都要在重新启动之前保存,以便我可以load
之前的状态重启后。
这就是我想要的东西:
process.on('restart', function(doneCallback) {
saveGame(doneCallback);
// The save game is async because it is writing toa file
}
我尝试使用SIGUR2
事件,但从未触发过。这是我尝试过的,但从未调用过函数。
// Save game before restarting
process.once('SIGUSR2', function () {
console.log('SIGUR2');
game.saveGame(function() {
process.kill(process.pid, 'SIGUSR2');
});
});
答案 0 :(得分:0)
下面的代码在Unix机器上正常工作。现在,由于您的saveGame是异步的,您必须从回调中调用process.kill。
process.once('SIGUSR2', function() {
setTimeout(()=>{
console.log('Shutting Down!');
process.kill(process.pid, 'SIGUSR2');
},3000);
});
因此,只要您在game.saveGame()
函数中执行回调函数,您的代码就会很好。
// Save game before restarting
process.once('SIGUSR2', function () {
console.log('SIGUR2');
game.saveGame(function() {
process.kill(process.pid, 'SIGUSR2');
});
});