Node.js автоматически отменяет setInterval? - PullRequest
0 голосов
/ 28 января 2019

Я использую setInterval и более поздние расписания узлов для создания запланированного вызова каждый час или около того, но похоже, что вызов обычно отменяется через несколько дней.

const { scheduleJob } = require('node-schedule');

for (let i = 0; i < 24; ++i)
  scheduleJob(`0 ${i} * * *`, tensorFlowAPIs);

Это расписание узлаversion.

setInterval(tensorFlowAPIs, 60 * 60 * 1000);

И это версия setInterval.

tenorFlowAPIs по сути является просто асинхронным запросом.

1 Ответ

0 голосов
/ 28 января 2019

Отменяет ли Node.js setInterval автоматически?

Нет.setInterval() не отменяется автоматически через некоторое время.

Если ваша программа остановлена, а затем перезапущена, вам придется вручную перезапустить setInterval(), чтобы она продолжала работать.

Часто проблемы с долго работающими программами связаны с утечкой ресурсов некоторыхвид (дескрипторы файлов, утечка памяти или какой-либо другой системный ресурс), который приводит к тому, что процесс не сможет выполнять свою работу в течение долгого времени.Очевидно, что лучший способ избежать этого - это иметь идеальную программу, которая никогда не пропускает ни одного важного ресурса, но один из способов, которым программисты обрабатывают медленные, трудно обнаруживаемые утечки с течением времени (особенно, если они могут быть в коде библиотеки, который не разработан разработчиком).не знакомы или встречаются только в некоторых трудно поддающихся моделированию условиях ошибки) - это перезапускать их процесс очень часто (возможно, один раз в день).Это очищает процесс от любых объектов утечки и начинается заново.

...