@olaver01

Почему возникает ошибка авторизации шедулера телеграм бота?

Написала телеграмм бота (python, aiogram3,sqlite3 ), не коммерческий проект, учусь. Идея такая: доставать данные с сайта по апи+ проверять обновления на сайте, если они есть, отправлять сообщение пользователям в бд. Локально все нормально работало. Выложила а сервер (beget). Бот работает, данные по запросу предоставляются, подписаться на обновления/отписаться - работает, но информации по обновлениям нет. Смотрю по файлу nohup:
ERROR:aiogram.dispatcher:Failed to fetch updates - TelegramConflictError: Telegram server says - Conflict: terminated by other getUpdates request; make sure that only one bot instance is running
WARNING:aiogram.dispatcher:Sleep for 4.902753 seconds and try again... (tryings = 9, bot id = )
ERROR:aiogram.dispatcher:Failed to fetch updates - TelegramUnauthorizedError: Telegram server says - Unauthorized
WARNING:aiogram.dispatcher:Sleep for 5.065652 seconds and try again... (tryings = 33631, bot id = )

Но почему? я поменяла токен бота , никакого другого инстанса быть не может.
Вот код, который запускает шедулер и main:
async def start():
#включение шедулера
scheduler = AsyncIOScheduler(timezone="Europe/Moscow")
scheduler.add_job(get_and_send_updates, 'cron', hour=18, minute=30, start_date=datetime.now(), args=(bot,))
scheduler.add_job(get_and_send_updates, 'cron', hour=19, minute=30, start_date=datetime.now(), args=(bot,))
scheduler.add_job(get_and_send_updates, 'cron', hour=20, minute=30, start_date=datetime.now(), args=(bot,))
scheduler.add_job(get_and_send_updates, 'cron', hour=22, minute=25, start_date=datetime.now(), args=(bot,))
scheduler.add_job(get_and_send_updates, 'cron', hour=23, minute=1, start_date=datetime.now(), args=(bot,))
scheduler.start()
# создание бд
create_users_db()
create_dates_db()
try:
await dp.start_polling(bot, skipUpdates=False)
finally:
await bot.session.close()

if __name__ == '__main__':
asyncio.run(start())
  • Вопрос задан
  • 290 просмотров
Пригласить эксперта
Ответы на вопрос 1
soulilya
@soulilya
Культурный, утонченный и изысканный.
Вы вставляете маленький кусочек кода из которого не видно полной картины. Сдается мне вот здесь:
get_and_send_updates как раз создается еще один instance бота. Либо, при создании задачи создается отдельный процесс и тогда каждый add_job запускает НОВЫЙ процесс. Попробуйте добавить только один джоб.

Я бы Вам порекомендовал написать СВОЙ инструмент, если Вы уж учитесь. А то получается, что Вы хотите научиться собирать компьютеры, но покупаете готовый и вставляете туда только одну свою деталь. Получается понабрали кучу библиотек, но как они работают не разобрались.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы