@hckn

Как остановить запущенную функцию (таск)?

На сервере (Нода/Экспресс) запущенны таски, выполняющиеся с интервалом

function testJob (name, timeout) {
  setInterval(() => {
    console.log(name)
  }, timeout)
}

function startUpJobs () {
  Job.find({}).then(jobs => {
    jobs.forEach(job => {
      testJob(job.name, job.timeout)
    })
  })
}


Сами таски хранятся в Монге, создаются через АПИ.

А как удалять таск? К примеру, какой-то из созданных тасков мне уже не нужен. Я хочу из ГУИ убивать его. Как это реализовать? Я посмотрел библу cron для Ноды https://github.com/kelektiv/node-cron там есть способ stop() но я не понимаю как идентифицировать нужный таск?
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 1
viogull
@viogull
Исследователь
Можете попробовать выделить код таска в отдельный модуль, а потом запускать его с помощью spawn() или fork(), при этом сохраняя process id. А чтобы остановить выполнение таска, вызывать потом process.kill(pid).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы