Node.js 由crontab启动后退出脚本

Node.js 由crontab启动后退出脚本,node.js,socket.io,cron,Node.js,Socket.io,Cron,我试图通过运行:node/home/../test-reset.js来使用crontab实现这一点: const io = require('socket.io-client') const socket = io.connect('http://localhost:3002'); socket.emit('message', 'reset'); process.exit(1); 它在不发送“消息”命令的情况下关闭 然后我测试了这个: const io = require('socket.io

我试图通过运行:node/home/../test-reset.js来使用crontab实现这一点:

const io = require('socket.io-client')
const socket = io.connect('http://localhost:3002');
socket.emit('message', 'reset');
process.exit(1);
它在不发送“消息”命令的情况下关闭

然后我测试了这个:

const io = require('socket.io-client')
const socket = io.connect('http://localhost:3002');
socket.emit('message', 'reset');
setTimeout( function() { process.exit(1); } , 2000);
在这里,它工作得很好,但我不喜欢setTimeout的这种做法。 您不想在没有设置超时的情况下完全退出吗

我想在脚本启动和执行后关闭它


谢谢。

您希望发送确认函:

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

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

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

在接收端,您需要:

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