@rebug
pyTelegramBot

Python telebot и sqlite3 (Recursive use of cursors not allowed) помощь?

Есть телеграм бот, который отправляет сообщения, получая информацию из бд sqlite3:

@bot.message_handler(regexp=config[language]['cat_phones'])
def handle_text(message):
    cursor.execute('SELECT * FROM lots')
    for row in cursor:
        bot.send_message(message.from_user.id, '{0}\n{1}\n<b> {2:,} {3}</b>\n<b> {4:,} {3}</b>'.format(
        row[3], row[5], row[8], row[1], row[8]/100*20), parse_mode='HTML')


когда 2 человека одновременно жмут эту кнопку, то возникает ошибка `Recursive use of cursors not allowed`
И вот, только перед запуском бота я узнал, что sqlite3 не поддерживает многопточность.

Вопросы:
  1. Каким образом можно решить эту проблему не переходя на другой тип бд??
  2. Какие бд поддерживают многопоточность??
  • Вопрос задан
  • 1798 просмотров
Пригласить эксперта
Ответы на вопрос 2
@OlegPyatakov
pyatakov.com
1. Решить можно, например, используя Threading Lock в функциях, работающих с БД.
2. Все работающие по сети: MySQL, PostresQL, MongoDB и прочие.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы