由crontab启动后退出脚本

时间:2018-10-12 19:33:56

标签: node.js socket.io cron

我正在尝试通过运行以下命令来与crontab配合使用:node / home /.../ test-reset.js:

const io = require('socket.io-client')
const socket = io.connect('http://localhost:3002');
socket.emit('message', 'reset');
process.exit(1);

它关闭而不发送'message'命令。

然后我对此进行了测试:

const io = require('socket.io-client')
const socket = io.connect('http://localhost:3002');
socket.emit('message', 'reset');
setTimeout( function() { process.exit(1); } , 2000);

这里效果很好,但是我不喜欢setTimeout的这种做法。 您不知道没有setTimeout即可干净退出吗?

我想在脚本启动并执行后将其关闭。

谢谢。

1 个答案:

答案 0 :(得分:1)

您要发送带有确认的邮件:

socket.emit('message', 'reset', () => {
  process.exit(1);
});

socket.emit(eventName[, …args][, ack])

  

ack参数是可选的,将与服务器答案一起调用。

这应该在成功执行发射并收到确认后立即调用回调。

在接收端,您需要:

socket.on('message', (val, fn) => {
  fn();
});