Написал бота, который записывает данные в базу данных. Столкнулся с такой проблемой:
Когда 2 и более человека одновременно включают бота, то из-за того что sqlite не любит многопоток, бот просто выключался.
import sqlite3
import threading
_____________________________________
def add(self, user_id, zero_or_one):
try:
self.lock.acquire(True)
self.cursor.execute("UPDATE driver SET reg = ? WHERE user_id = ?", (zero_or_one, user_id))
return self.conn.commit()
finally:
self.lock.release()
Когда я сделал вот так, то бот выключаться перестал, но работать с другими людьми переставал.
К примеру, мы, вдвоём нажали на кнопку, и запись в бд произойдёт только у того, кто её первый нажал, а у второго ничего не произойдет вовсе.
Подскажите, пожалуйста. Как решить эту проблему? Или как создать очередь? Я читал про какие-то флаги многопотока, но я вообще не понял где и как их включать.