Здравствуйте. Я использую библиотеку peewee в качеств ОРМ для бота. Когда там действие доходит до взаимодействия с таблицами, то есть, .get или .create, то это может занимать до 15-20 секунд. Я предполагаю, что это связано с открытием соединения с БД. Если нет, то поправьте меня, пожалуйста. Модели находятся в отдельном файле, они импортируются в другие нужные места и там происходят get/create методы. Я попробовал открыть соединение единожды в самих моделях единожды, потому что я не знаю, как оно будет себя вести при импортах и мало ли будет несколько соединений конфликтовать и лочить БД. Не кидайтесь тапками за такие непонятки)
Код типо инициализации БДdef initialize_db():
global db_initialized
if not db_initialized: # Проверяем, инициализирована ли база данных
db.connect()
db.create_tables([Referrer, Channels, BotTexts], safe=True)
db_initialized = True # Устанавливаем флаг в True
Пример применения моделейdef start_message(message):
chat_id = message.chat.id
args = extract_arguments(message.text)
if Referrer.does_referrer_exist(chat_id):
bot.send_message(chat_id, BotTexts.get(text_id=3).text)
return
if args:
if Referrer.is_already_reffered(chat_id):
bot.send_message(chat_id, BotTexts.get(text_id=4).text)
bot.set_state(chat_id, UserState.AWAITING_NICKNAME, chat_id)
return
else:
user = Referrer.get(user_id=int(args))
user.add_referred_user(chat_id)
bot.send_message(args, BotTexts.get(text_id=5).text)
Если дело действительно в длительном соединении с БД, то в каком файле мне нужно это сделать, чтобы соединение было для всех взаимодействий? Если же не в этом дело, то в чем? Если вдруг надо дополнить инфу, код - пишите, дам всё, что надо. Кроме токена :)