如何检查节点cron执行cron作业所花费的时间



我想检查cron作业为该特定cron作业执行cron作业过程所花费的时间。

之后,如果cron作业执行该进程的时间超过10分钟,则应停止该特定cron作业,其余cron作业应正常处理。

我正在为cron作业使用node-cron包。

在下面的代码中,我想知道执行该进程所需的时间,如果超过10分钟,那么在setTimeout((函数中,我可以使用cron的task.stop((方法来停止该cron作业。

var task = cron.schedule('0 1 * * *', () => { console.log('Runing a job at 01:00') }

如果我理解正确,您希望设置一个超时,以便在进程超过运行时间10分钟时取消进程。最佳答案将取决于流程正在进行的活动类型。如果您正在使用child_process模块生成另一个进程,您可以从文档中的一个示例开始,该示例在2秒钟后杀死子进程,并根据您的需要进行调整:

'use strict';
const { spawn } = require('child_process');
const subprocess = spawn(
'sh',
[
'-c',
`node -e "setInterval(() => {
console.log(process.pid, 'is alive')
}, 500);"`
], {
stdio: ['inherit', 'inherit', 'inherit']
}
);
setTimeout(() => {
subprocess.kill(); // Does not terminate the Node.js process in the shell.
}, 2000);

最新更新