Я получаю ошибку «504 Gateway Timeout» в моем приложении Express.js, когда таймер JavaScript запускается каждые 20 секунд.
Это мой прослушиватель Express.js и таймер:
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => res.send('ok.'))
var listener = app.listen(process.env.PORT, function() {
console.log('Your app is listening on port ' + listener.address().port);
});
var items = [
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
]
let forParallel = require('node-in-parallel');
var request = require('sync-request');
setInterval(function() {
forParallel(items, function(listItem) {
request("GET", "https://example.com/?i=" + listItem);
console.log("Done.");
}, function () {
});
}, 20000);
Итак, как вы можете видеть: я использую параллельный узел для зацикливания массива items
каждые 20 секунд параллельно ... каждая итерация цикла должна выполнять запрос GET к "https://example.com/?i=" + listItem
...
Итак .. Express.js работает нормально до первого запуска таймера!но при запуске таймера Express.js возвращает «Ошибка 504 времени ожидания шлюза»
Не является ли прослушиватель Express.js асинхронным?
РЕДАКТИРОВАТЬ : обратите внимание, что процессзапрос GET занимает время (например, 30 секунд на итерацию), потому что он делает что-то большое.