Метод Telegram API POST / editmessagereplymarkup выполняется с задержкой - PullRequest
5 голосов
/ 15 апреля 2020

Дано:

  • Канал телеграммы
  • Группа телеграмм
  • Бот Telegram с длинной стратегией опроса на борту, которая обрабатывает все обновления
  • Сообщения с кнопками разметки ответа
  • Бот основан на https://github.com/rubenlagus/TelegramBots

Действие:

Нажмите любую кнопку дважды (или более) за короткий промежуток времени (1-2 секунды)

Проблема:

Когда я нажимаю кнопки в группе - все в порядке , но когда я нажимаю те же кнопки с тем же логом c в канале:

Первый вызов API выполняется очень быстро, но для ответа на второй вызов API требуется около 5 секунд, что приводит к зависанию бизнес-логики c и раздражает пользователя

Методы:

private fun updateChatMarkup(messageId: Int, votes: Map<VoteValue, Int>) =
  EditMessageReplyMarkup()
      .setChatId(chatId)
      .setMessageId(messageId)
      .setReplyMarkup(createMarkup(votes)).let { execute(it) }   

private fun updateChannelMarkup(messageId: Int, votes: Map<VoteValue, Int>) =
  EditMessageReplyMarkup()
      .setChatId(channelId)
      .setMessageId(messageId)
      .setReplyMarkup(createMarkup(votes, messageId)).let { execute(it) }
...