Python telebot и sqlite3 (Recursive use of cursors not allowed)

Pryan1check

Есть телеграм бот, который отправляет сообщения, получая информацию из бд 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. Какие бд поддерживают многопоточность?
3 ответа

Pryan1check

Можно сначала добавлять запросы в очередь и выполнять по одному


Pryan1check

locks?


Pryan1check

Каким образом можно решить эту проблему не переходя на другой тип бд? Какие бд поддерживают многопоточность?
1. можно так
try:
    cursor.execute('SELECT * FROM lots')
    #....
except:
    print('please wait,  try later...')
2. любая клиент-серверная