2

我想检查 cron 作业执行该特定 cron 作业的 cron 作业进程需要多少时间。

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

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

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

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

4

1 回答 1

1

如果我理解正确,您想设置超时以在超过 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);
于 2019-11-08T15:34:19.793 回答