fix: корректно пропускать pending updates при старте long polling #3

Closed
opened 2026-04-23 19:40:44 +03:00 by Toutsu · 1 comment
Owner

В TelegramBotService используется попытка очистить pending updates, но после этого offset сбрасывается на 0, из-за чего часть старых апдейтов может быть обработана повторно после рестарта.

Что нужно сделать:

  • корректно вычислять стартовый offset после чтения последнего pending update;
  • исключить повторную обработку старых callback/message после перезапуска;
  • добавить тест или минимальную проверку поведения на уровне сервиса/роутера.

Критерий готовности:
После рестарта бот не переигрывает старые команды и callback-апдейты.

В `TelegramBotService` используется попытка очистить pending updates, но после этого offset сбрасывается на `0`, из-за чего часть старых апдейтов может быть обработана повторно после рестарта. Что нужно сделать: - корректно вычислять стартовый offset после чтения последнего pending update; - исключить повторную обработку старых callback/message после перезапуска; - добавить тест или минимальную проверку поведения на уровне сервиса/роутера. Критерий готовности: После рестарта бот не переигрывает старые команды и callback-апдейты.
Toutsu added this to the Этап 1 — Стабилизация платформы milestone 2026-04-23 19:44:28 +03:00
Toutsu added the type:bugarea:botpriority:p0next-up labels 2026-04-23 19:46:22 +03:00
Author
Owner

Исправлено в commit 4d66518: старт long polling теперь продолжается с lastPendingUpdateId + 1, добавлен unit-тест на сценарий рестарта, чтобы старые pending updates не переигрывались.

Исправлено в commit `4d66518`: старт long polling теперь продолжается с `lastPendingUpdateId + 1`, добавлен unit-тест на сценарий рестарта, чтобы старые pending updates не переигрывались.
Sign in to join this conversation.