Я столкнулся с этой серьезной проблемой в приложении Heroku: у меня настроен экспресс-маршрут
следующим образом:
app.get('/recommendations/:data', (req, res) => {
let dataSplit = req.params.data.split("");
let dataInt = [];
dataSplit.forEach(char => dataInt.push(parseInt(char)));
function sendPrediction(dataInf) {
const process = spawn('python', ["./predict.py", dataInt]);
process.stdout.on('data', (data) => {
let jSonned = JSON.stringify(data.toString('utf-8'));
let chopped = jSonned.slice(1, jSonned.length - 3);
res.send(chopped.split(','));
});
}
sendPrediction(dataInt);
});
Когда я выполняю запрос GET на этот маршрут от компонента внешнего интерфейса, он завершается с ошибкой H12 через 30 секунд в соответствии с поведением Heroku по умолчанию. Поскольку этот маршрут отлично работает на моем локальном хосте, это заставляет меня поверить, что с зависимостями Python что-то не так, поскольку я могу повторить то же поведение на локальном хосте, отключив свой virtualenv. Я знаю, что это не так уж много, но если кто-то видел что-то подобное и может помочь, я очень ценю это.
Как я могу выяснить, где проблема?
Вот ошибка из логов Heroku:
2018-04-30T17:17:27.175201+00:00 heroku[router]: at=error code=H12
desc="Request timeout" method=GET path="/recommendations/41231" host=what-
doxd.herokuapp.com request_id=2249d6ac-a389-40c1-8f64-8947796494a7
fwd="12.23.56.98" dyno=web.1 connect=1ms service=30001ms status=503 bytes=0
protocol=https