Задать вопрос
@Anton27

Использование sql lite 3 и telebot одновременно несколькими людьми, будет ли ошибка?

Я делаю бота в ТГ с возможностью создать дисконтную карту, от пользователя нужны его имя и дата рождения. Я плохо владею aiogram, поэтому использую связку teleapi и sql lite3, такой вопрос. Если два пользователя одновременно будут создавать карту, будут ли данные в бд записываться корректно?
То есть
Иван - вводит имя
Саша - вводит дату
Все это происходит одновременно, будут ли данные отображаться в бд корректно и не будет ли путаницы между ними, очень нужен ответ
  • Вопрос задан
  • 203 просмотра
Подписаться 1 Простой 10 комментариев
Пригласить эксперта
Ответы на вопрос 3
Нужно использовать машину состояний и redis для предварительного сбора всех данных
когда получены корректные данные, тогда записывать их в бд. это нужно для того, чтобы не писать отдельно в бд имя, потом дату и проч. а иначе, если пользователь еще не закончил ввод и ушел, то в базе будут негодные данные
для бота, где не сильно важна скорость можно использовать обычный модуль sqlite3. если не создавать новые конекты на каждую запись в базу, то этот модуль будет последовательно записывать в БД и так замедлять работу
Для сильно нагруженных ботов нужно использовать асинхронную библиотеку бота aiogram и асинхронный модуль aiosqlite https://pypi.org/project/aiosqlite/
Ответ написан
Комментировать
@twistfire92
Python backend developer
Если используете pytelegrambotapi (telebot), то с помощью register_next_step_handler вполне несложно собрать разом нужные данные и потом одним запросом записать их в БД. пользователи при этом друг другу не помешают. У каждого пользователя будет своя запись в БД
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Да все будет в порядке. Проскочит как сквозняк. Главное длительных транзакций не делать.
И архитектура у SQLite - такая. Один процесс который держит открытым файлы sqlite.

Вообще так вопросы спрашивать нельзя. Потому-что тут ответы и да и нет и оба верные.
И автор должен быть в теме как работает мультипоточка в Питоне. Иначе получается
как в анекдоте про "активного читателя" который пишет письма в "Академию Наук про
подземный стук".
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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