Tishka17
Ну вот "http request" - это же не фласковый реквест, не саник
Tishka17
А неведомая фигня
Tishka17
И коннекторы к бд небось свои, да?
Tishka17
В общем, я понял
Maxim
Maxim
Твоя функция stateless
Tishka17
Если не сохранять данные и сервер не нужен, можно все на клиенте делать
Tishka17
Maxim
В мою задачу идеально подошло такое решение. Я не говорю, что надо любое приложение теперь делать так.
Tishka17
Maxim
Tishka17
Tishka17
Maxim
А там вендор-лок на платформу, да.
Maxim
Ну хотя нет
Maxim
Зависимости устанавливать можно
Maxim
Телеграм-библиотека у меня подключна.
Maxim
Tishka17
Ок
Detur
Tishka17
Detur
Bogdan (SirEdvin)
А транзакции?
А что мешает транзакции в http делать в рамках сессии?)
Tishka17
Bogdan (SirEdvin)
Ну, в реальности транзакции же находятся в самой бд. Достаточно просто сначала делать условный login и получать идентификатор сессии, с которым дальше ходить в бд. И транзакции не будут проблемой, как мне кажется.
В копилку к этому есть websocket или keep-alive штуки
Tishka17
Bogdan (SirEdvin)
То есть?
Tishka17
А хз
Tishka17
Чёт все что не гуглю про js
Bogdan (SirEdvin)
Ну, в рамках http можно сделать так:
1. login -> получен токен
2. выполняешь запрос c условным {'session': 'token', 'query': 'BEGIN TRANSACTION'}
3. выполняешь запрос c условным {'session': 'token', 'query': 'UPDATE required'}
4. выполняешь запрос c условным {'session': 'token', 'query': 'UPDATE another'}
5. выполняешь запрос c условным {'session': 'token', 'query': 'COMMIT'}
Bogdan (SirEdvin)
То есть это не очень эффективно, но технически не проблема
Bogdan (SirEdvin)
Для лучшей эффективности можно применять всякий keep-alived, что бы коннект устанавливался быстрее, но тут опять остается вопрос про "бинарный формат быстрее, чем текстовый"
Tishka17
Maxim
В редис. =)
Tishka17
В редис. =)
Тогда у меня в БД не будет транзакции
Bogdan (SirEdvin)
Bogdan (SirEdvin)
Результаты запросов тебе приходят в ответе на запрос
Maxim
Maxim
На самом деле я не знаю, как разруливают продвинутые кейсы в такой архитектуре. Но как-то разруливают.
Tishka17
В плане? Запросы же выполняются в бд
Ну я буду в БД открывать транзакцию и ждать повторных запросов? Никаких гарантий что следующий запрос по http прилетит в тот же инстанс сервеоа
Tishka17
Tishka17
Меняют логику так чтобы они не нужны были
Bogdan (SirEdvin)
Tishka17
Но транзакции БД остаются
Tishka17
Юзать одну транзакцию БД из двух коннектов невозможно
Tishka17
Юзать один Коннект с двух серверов - невозможно
Tishka17
Гарантировать что два хттп запроса придут на один сервер - невозможно
Bogdan (SirEdvin)
Невозможно - у вас есть какие-то физические ограничения, которые это запрещают?
Bogdan (SirEdvin)
У вас есть роутинг внутри кластера
Tishka17
Bogdan (SirEdvin)
Вы же понимаете, что можно не привязать транзакцию к коннекту?
Tishka17
Tishka17
Давай в постгресе или мускуле
Bogdan (SirEdvin)
Мы говорим про конкретную бд или все-таки про абстрактную? Понятное дело, что в них такой возможности нет
Tishka17
Про любую тебе известную реляционную
Tishka17
К которой умник решил дать доступ по хттп
Bogdan (SirEdvin)
Любая известная мне реляционная вроде не умеет в http
Bogdan (SirEdvin)
Если мы говорим про прокси между пользователем и postgres - это вполне возможно
Bogdan (SirEdvin)
Достаточно просто что бы у этих прокси была полная связность и они могли роутить друг на друга запросы
Bogdan (SirEdvin)
То есть, если запрос приходит на сессию, которая была заведена в другом прокси, запрос перенаправлялся туда
Tishka17
Tishka17
Я понимаю ещё вебсокет
Tishka17
Короче, мы поняли. Надо ещё балансировщик хитрый очень
Tishka17
Ок
Bogdan (SirEdvin)
Ну, то есть так будут делать только наркоманы, но технически это возможно)
🇺🇦|√|_0_I7_3_12🇺🇦
Почему-то pip install pygame выдаёт ошибку
🇺🇦|√|_0_I7_3_12🇺🇦
Ошыбку
Tishka17
бывает
Tishka17
иногда я вместо pip install пишу pip isntall и тоже ошибка
Oleg
17