我在Heroku上部署了一个nodejs后端来处理Telegram机器人与某些API之间的通信。问题是机器人有时需要几个小时才能发回一些响应,我会收到像这样的连续错误(有时,每隔1分钟):
heroku[router]: - at=error code=H12 desc="Request timeout" method=POST path="/new-message" host=MY_APP request_id=SOME_ID fwd="SOME_ADDRESS" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=https
我的代码(在index.js中)如下:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
const axios = require('axios');
const port = process.env.PORT || 3000;
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.post('/new-message', function(req, res) {
const {message} = req.body
if (!message) {
return res.end()
}
if (message.text === 'Hello world!') {
axios.post('https://api.telegram.org/botID/sendMessage', {
chat_id: message.chat.id,
text: 'You said Hello world!'
})
.then(response => {
console.log('Message posted');
res.end('ok');
})
.catch(err => {
console.log('Error :', err);
res.end('Error :' + err);
})
}
});
app.listen(port, function() {
console.log('Listening on port ' + port);
});
错误不仅发生在我写一个" Hello world!"消息,但也没有做任何事情。在某些情况下,机器人会正确地回复我,但这不是一般规则......在某些情况下,我甚至会在第二天收到回复。
知道问题可能是什么?我想这是一个与等待响应相关的问题,30秒后发回错误,但我不知道如何修复它......
非常感谢!