Мне нужно запускать планировщик каждые 5 минут, который будет выполнять несколько HTTP-вызовов. После первого раза я хочу запустить следующий таймер только после завершения всех HTTP-вызовов. Как я могу это сделать? Не могу найти решение в документации по node-cron. Вот как я пытаюсь это сделать.
const CronJob = require('cron').CronJob;
const axios = require("axios");
const job = new CronJob('* */5 * * * *', function() {
console.info(new Date());
calls();
},null,true);
function calls(){
job.stop();
axios.get("url").then((res)=>{
console.info(res.data);
job.start();
})
}





вероятно, axios не дает какого-либо конкретного api в соответствии с вашими потребностями, но вы можете создать флаг, который включается перед созданием axios.get () и сбрасывается при получении ответа. Внутри задания cron Пропустите задачу, если флаг включен, иначе вызовите (), образец:
const CronJob = require('cron').CronJob;
const axios = require("axios");
var isRunning = false;
const job = new CronJob('* */5 * * * *', function() {
console.info(new Date());
if (!isRunning) calls();
},null,true);
function calls(){
job.stop();
isRunning = true;
axios.get("url").then((res)=>{
isRunning = false
console.info(res.data);
job.start();
})
}