#node.js #api #exception #cron #http-status-code-502
Вопрос:
Я добавил два задания cron, которые будут выполняться каждые 15 минут, и каждые 3 часа в течение этого времени я не могу получить доступ к API. Я получаю 502 ошибки плохого шлюза.
import Agenda from 'agenda'; import { updateCinemaData } from './updateCinemaData'; import { updateStreamingData } from './updateStreamingData'; import dotenv from 'dotenv'; dotenv.config(); const uri = process.env.MONGO_URI; const MAX_CONCURRENCY_JOBS = 4; const agenda = new Agenda({ db: { address: uri, options: { useNewUrlParser: true }, collection: 'schedule-jobs' }, processEvery: '30 seconds', }); const graceful = async () =gt; { await agenda.stop(); process.exit(0); }; process.on('SIGTERM', graceful); process.on('SIGINT', graceful); agenda.define('get cinema data', { priority: 1 }, async (job, done) =gt; { console.log('get cinema data') await updateCinemaData(); done(); }); agenda.define('get streaming data', { priority: 2 }, async (job, done) =gt; { console.log('get streaming data') await updateStreamingData(); done(); }); (async function () { const getCinemaData = agenda.create('get cinema data', {}); const getStreamingData = agenda.create('get streaming data', {}); await agenda.start(); agenda.maxConcurrency(MAX_CONCURRENCY_JOBS); const jobNames = [ 'get cinema data', 'get streaming data' ]; for (let jobName of jobNames) { try { let jobs = await agenda.jobs({ name: jobName }); for (let job of jobs) { job.remove(); } } catch (error) { console.log(error); } } await getCinemaData.repeatEvery('*/15 * * * *').save(); //Runs every 15 mins. await getStreamingData.repeatEvery('* */2 * * *').save(); //Runs every 3 hours. })(); export default agenda;
Чтобы поймать все исключения, я добавил приведенный ниже код в свой server.js
process.on('uncaughtException', function (exception) { log.error(exception); });
с этим также я не могу получить ошибки, и эта проблема связана только с производством. Также проверил журналы pm2 и журналы Nginx, но безрезультатно. Может ли кто-нибудь объяснить мне, с какой проблемой я сталкиваюсь? Я новичок в Nodejs и не могу решить эту проблему.