你可以使用 setInterval 函数来实现每 3 秒执行一次 methodA,并使用 process.on 来监听 SIGINT 信号,从而在程序被终止时等待 methodA 执行完成。

下面是一个示例的代码:

// 定义 methodA 函数,模拟需要执行的操作
function methodA() { 
  console.log('Executing methodA...');
  // 模拟 methodA 执行需要的时间
  setTimeout(() => {
    console.log('methodA executed.');
  }, 2000);
}

// 每 3 秒执行一次 methodA
const interval = setInterval(methodA, 3000);

// 监听 SIGINT 信号
process.on('SIGINT', () => {
  console.log('Received SIGINT signal. Waiting for methodA to complete...');
  clearInterval(interval); // 清除 setInterval
  methodA(); // 立即执行一次 methodA
});

在上述代码中,methodA 函数用于模拟需要执行的操作,你可以在其中编写自己的业务逻辑。setInterval 函数用于每 3 秒执行一次 methodAprocess.on 用于监听 SIGINT 信号,当程序接收到终止信号时,会打印一条消息并等待当前正在执行的 methodA 完成。

请注意,methodA 函数的执行时间应尽量控制在 3 秒以内,否则可能会导致程序在接收到终止信号后仍需等待较长时间。

Node.js 使用 setInterval 和 SIGINT 实现每 3 秒执行方法并优雅退出

原文地址: https://www.cveoy.top/t/topic/ph6p 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录