Node.js 使用 setInterval 和 SIGINT 实现每 3 秒执行方法并优雅退出
你可以使用 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 秒执行一次 methodA。process.on 用于监听 SIGINT 信号,当程序接收到终止信号时,会打印一条消息并等待当前正在执行的 methodA 完成。
请注意,methodA 函数的执行时间应尽量控制在 3 秒以内,否则可能会导致程序在接收到终止信号后仍需等待较长时间。
原文地址: https://www.cveoy.top/t/topic/ph6p 著作权归作者所有。请勿转载和采集!