Open guiaugusto opened 5 years ago
No momento, ao realizar uma requisição para algum serviço que o bot Lino consome, caso ele não esteja no ar, o sistema tende a falhar podendo ocasionar o erro. Caso aconteça, esse será o comportamento do bot:
Como lidar com essa situação?
Para interromper esse travamento, a ideia é simplesmente pegar uma atualização da mensagem que viria posteriormente à ultima, fazendo com que o bot percorra e jogue fora todas as mensagens recebidas até o id fornecido.
Exemplo:
Passo 1: delete o webhook associado ao bot
https://api.telegram.org/bot{token específico do bot}/deleteWebhook
Passo 2: acessar a rota para obter as informações das mensagens.
https://api.telegram.org/bot{token específico do bot}/getUpdates
Passo 3: obter o _updateid da última mensagem enviada.
Passo 4: acessar a rota que percorre as mensagem até o _updateid pego anteriormente, somando +1 no valor do id.
id pego:
3424
rota a ser acessada:
https://api.telegram.org/bot{token específico do bot}/getUpdates?offset=3425
Descrição
Com uma frequência ainda desconhecida, o Lino passa pelo problema de acumular todas as mensagens enviadas à ele pelo Telegram Messenger, ocorrendo os seguintes erros (até agora mitigados):
Observações
Ao utilizar o método getUpdates disponibilizado para analisar as informações do bot no Telegram, percebe-se que existe um acúmulo das mensagens enviadas em determinado intervalo de tempo, não associando as respostas aos usuários que entraram em contato, ocasionando o travamento do bot.
Ao ocasionar o ocorrido em [1], este erro só foi reproduzido em produção, ao reiniciar o container no Rancher. Logo quando o bot termina o treinamento após a reinicialização, ele começa a enviar aleatoriamente mensagens aos usuários que conversaram com ele após o período de travamento.
Tarefas
Critérios de Aceitação