如何检查 node-cron 执行 cron-job 花费了多少时间

How to check how much time node-cron is taking for executing cron-job

我想检查 cron 作业为执行该特定 cron 作业的 cron 作业进程花费了多少时间。

之后,如果 cron-job 执行该过程的时间超过 10 分钟,则应停止该特定 cron-job,其余 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 分钟时取消进程。最佳答案取决于进程正在执行的 activity 类型。如果您使用 child_process 模块生成另一个进程,您可以从 documentation 中的一个示例开始,它会在 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);