Я сейчас работаю над приложением Meteor. Несколько подпрограмм cron запускаются с использованием пакета узлов-пакетов npm. Моя проблема в том, что после первоначального запуска метеорного сервера (с использованием командной строки 'meteor yarn start: dev') процедура выполняется много раз одновременно, а затем каждую минуту, как и ожидалось. Очевидно, это вызывает некоторые проблемы, связанные с асинхронной c природой этих подпрограмм.
Моя гипотеза: поскольку первоначальная сборка занимает около 3 минут, а подпрограмма запланирована каждую минуту, я подумал, что планировщик может быть каким-то образом инициализируется в начале процесса сборки, что приводит к множественным запускам, когда сервер фактически готов.
Пример кода для прояснения ситуации:
const schedule = require('node-schedule');
const fetch = require('node-fetch');
schedule.scheduleJob('*/1 * * * *', // cron pattern for every minute
function () {
fetch("whatever/my/routine/route", {
headers: { 'Content-type': 'application/json' },
method: 'GET'
})
});
Я уже сделал некоторые исследования о том, как получить доступ к состоянию метеорного сервера внутри рутинного кода, чтобы выполнить его, только когда сервер полностью функционирует, но ничего не нашли.
Все, что могло бы помочь, приветствуется, даже обходной путь. И имейте в виду, что моя гипотеза может быть совершенно неверной.