юзеров в одну секунду захотят что-то изменить через тг и получается 100 потоков обратятся к бд. С очередью не очень бы хотелось возится. Может есть универсальное решение?
не использовать sqlite с потоками асинк на изи захэндлит 100 одновременных запросов, главное юзай только один коннект и избегай лококомпроментирующих кейсов
За "юзай один коннект" нужно пояснение
юзаю один коннект чтобы избегать локов
Нормально ведёт себя. Только один поток может писать. По дефолту остальные будут ждать на открытии соединения. Но есть wal режим для случая одновременных чтений С асинкио же надо быть аккуратным, чтобы не получить дэдлок. Поэтому не стоит чередовать работу с sqlite и await вызовы
просто все методы класса, который юзает коннект к бд, пишу без эвейтов 🤔
как ты следишь что в одной транзакции нет await?
каждый метод моего класса бд создает курсор, кормит квери, возвращает ответ, если надо. Все это синхронно.
А как бы нахуя оно надо. Если в транзакции эвэйт то уже попахивает зависшими транзакциями, которые постгрес очень не любит
это конечно да, но не всегда получается
в этом случае 100% не ок
Saga передаёт пламенный привет
Обсуждают сегодня