с асинком или всё же просто начать юзать алхимию по классике?
Никакой разницы не заметишь. Только другой класс сессии и эвейты
А еще кверю нельзя использовать((
Кверя не асинхронная, там нету авейтов
Это хорошо, что её убрали, она депрекейтед для 2.0 стиля
ты про старый синтаксис что ли? он депрекейтед
Но он мне нравился(
новый прозрачнее и универсальнее
Я юзаю в продакшене, проблем 0
Во! Отлично! Подскажите, а разница реально заметна или всё же нет? Как писал @Tishka17 - разницы нет. Я склоняюсь к тому, что её действительно скорее всего нет. Большой у вас проект на ней?
Ну относительно айти гигантов крошечный А так 60к юзеров и работа с деньгами
вполне себе, у нас в целом будет не больше, так что мне ваши показатели и в целом мнение очень важно и релевантно
По поводу синтаксиса: Я раньше на синк юзал старый синтаксис типо session.query Перешёл на асинк вообще без проблем 2.0 синтаксис такой же точно как и старый core
Надо явно задавать какие связи подгружать в запросе, это чуть больше кода, но это по сути правильнее Не будешь дёргать базу лишний раз lazy load’ом
Я хотел спросить чувствуете ли вы реальную пользу от использования асинка? Вот чисто по вашим ощущениям? Надо полагать что у вас и всё приложение в асинк режиме работает?
У меня весь проект на асинке, так что в моем случае юзать синк было просто не вариант, поэтому сравнивать не могу
То есть сравнить по сути не с чем? Правильно я поминаю? У меня тоже есть асинк проекты, но асинхронщина так даже не смотря на фастапи всё равно очень сомнительная, разумеется не считая запросов к внешним сервисам.
Да, не с чем, но тут просто мысленный эксперимент поможет В один момент тебе одновременно приходит 10 запросов С синхронным движком бд у тебя ивентлуп заблокируется 10 раз на допустим 100мс Вот тебе задержка в 1000 мс из ниоткуда
эм, а как насчёт воркеров?
Если воркеры в разных процессах - ок
Ну разумеется, uvicorn, фастапи спереди и вот это вот всё, Потому я об асинке для орм и задумался.
Короче, мешать синк с аснком хуевая затея, я на своей шкуре прочувствовал
Один пример из текущего проекта, я забыл обернуть одну синк функцию в loop.run_in_executor И при нагрузке были такие ебейшие фризы, а я три дня не мог понять в чем же дело
Так что юзай либо фласк и синк либо aiohttp/fastapi и асинк
Я юзаю фастапи + aiohttp потому что много внешних запросов и асинк заходит отлично. База отрабатывает очень быстро и реальная разница врядли будет заметна, плюс, генерацию документов приходится делать синхронной, обязательно нужно дожидаться ответа.
Все cpu bound задачи выноси в отдельный воркер просто
Да, разумеется, к этому мы обязательно придём. У нас небольшой стартап и достаточно небольшая команда, а задач достаточно много. Не всё сразу.
Я вообще в одну харю пока что весь сервис везу 😬
Блин, тяжело наверное, так ещё у вас работа с финансами. Какая-то запредельная история.
Ну так получилось что начал писать mvp, и с криптой остальные толком работать не умели, и доверия к посторонним нет А чтобы что то делегировать нужна хотя бы какая то документация (которой нет) и каждую неделю что то меняется с внедрением новых фич
Очень хорошо вас понимаю, уже почти 7 лет работаю с разными стартапами. Могу только сил и терпения пожелать 💪.
Обсуждают сегодня