Я написал бота LongPolling, который работает с одним обновлением за раз.
Я хочу, чтобы он работал с 2 или более обновлениями по многопоточности.
Вот пример того, что я имею в виду. Я нашел этот пример в статье «Оптимизация производительности (Python Telegram Bot)».
Пример: у вас запущен Echobot и два пользователя (пользователь A и пользователь B)
отправить сообщение боту одновременно. Может быть, пользователь А был немного
быстрее, поэтому его запрос прибывает первым, в форме объекта Update
(Обновление А). Диспетчер проверяет обновление и решает, что оно должно быть
обрабатывается обработчиком с помощью функции обратного вызова с именем echo. На
в это же время приходит обновление пользователя B (обновление B). Но Диспетчер
не завершено с обновлением A. вызывает функцию эха с обновлением
A, который отправляет ответ пользователю A. Отправка ответа занимает некоторое время (см.
Расположение сервера), а Обновление B остается нетронутым в течение этого времени.
Только после завершения функции эха для обновления A диспетчер
повторяет тот же процесс для обновления B.
В этой статье говорится, что для решения такого рода проблем библиотека телеграмм python предоставляет способ явного запуска функции обратного вызова (или любой другой функции) в отдельном потоке.
Может кто-нибудь объяснить мне, как это сделать с Java ???
Вот мои части кода:
BOT
@Component
public class SenderBot extends TelegramLongPollingBot {
private static final String BOT_TOKEN = "token";
private static final String BOT_NAME = "bot_name";
static {
ApiContextInitializer.init();
}
@Override
public void onUpdateReceived(Update update) {
if (update.hasMessage()) {
...
some code
...
}
}
}
SpringBootApp
@SpringBootApplication
public class SenderBotApplication {
public static void main(String[] args) {
SpringApplication.run(SenderBot.class, args);
}
}
Если кто-то знает другой путь без многопоточности - скажите мне, как.
Буду очень признателен за любую помощь и примеры.