Как проверить, сколько времени требуется узлу-cron для выполнения задания cron - PullRequest
2 голосов
/ 05 ноября 2019

Я хочу проверить, сколько времени занимает задание cron для выполнения процесса задания cron для этого конкретного задания cron.

После чего, если задание cron занимает более 10 минут для выполнения этого процесса, тогда этоопределенное задание cron должно быть остановлено, а остальные задания cron должны обрабатываться как обычно.

Я использую пакет node-cron для задания cron.

В приведенном ниже коде я хочу узнать, сколько времени оновыполняет этот процесс, если он дольше 10 минут, то в функции setTimeout () я могу использовать метод task.stop () cron, чтобы остановить это задание cron.

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

1 Ответ

1 голос
/ 08 ноября 2019

Если я вас правильно понимаю, вы хотите установить тайм-аут для отмены процесса, если он превышает 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);
...