Когда вы делаете такие вещи, как TimeUnit.MINUTES.sleep(60);
, вы приостанавливаете текущий поток, выполняющий строку кода. Это, вероятно, ваша основная тема. Таким образом, вы приостановите весь свой бот и, таким образом, сделаете его невосприимчивым к любому взаимодействию, пока поток не выйдет из спящего режима.
Вам следует попробовать использовать cron или запланированные задания. Или создайте другой поток в вашем приложении. Но я думаю, что это лучший выбор дизайна, чтобы пойти на что-то вроде работы cron. Это вызовет событие или вызовет конечную точку вашего бота, чтобы отправить вам обновление, запланированное на определенное время.