Как создать очередь в SQLite3 Python?
Работаю в асинхронном боте
На сколько знаю в SQLite3 читать можно одновременно, но редактировать только одним потоком.
Можно ли как-то создать очередь, чтобы не появлялось исключение "database is locked"?
Видел похоже асинхронный SQLite3, но мне нужно возвращать его ответы и не думаю, что это решит проблему.
Ответы (1 шт):
Попробуйте установить параметр соединения check_same_thread=False https://docs.python.org/3/library/sqlite3.html
По умолчанию check_same_thread есть, True и только создающий поток может использовать соединение. Если установлено False, возвращенное соединение может совместно использоваться несколькими потоками. При использовании нескольких потоков с одним и тем же соединением операции записи должны быть сериализованы пользователем, чтобы избежать повреждения данных