Size: a a a

2020 October 16

T

Tishka17 in Python Flask
Gleb B
То есть большие сервисы на фласке запускаются с кучей воркеров( 2 * кол-во ядер цп +1)  и получают возможность получить 502 ошибку в случае повышения кол-ва реквестов? Или используют gthread воркера?
В случае превышения числа реквестов клиент ждёт
источник

A

Alex in Python Flask
1. входящие запросы ждут своей очереди в беклоге пока воркер гуникорна не освободится.
2. перед гуникорном обычно еще ставят reverse proxy в виде nginx, который выступает в роли буфера входящих запросов
источник

GB

Gleb B in Python Flask
Спасибо за ликбез еще раз)
источник

A

Alex in Python Flask
Gleb B
То есть большие сервисы на фласке запускаются с кучей воркеров( 2 * кол-во ядер цп +1)  и получают возможность получить 502 ошибку в случае повышения кол-ва реквестов? Или используют gthread воркера?
на пальцах если у тебя больше одновременных запросов чем количество воркеров способных их обработать — будет расти latency запросов.
источник

h

hightime in Python Flask
Не знаю по-адресу ли вопрос, но так как моя приложуха на фласке - пишу сюда)

Приложение в одном из endpoint’ов делает запрос на один сервис, парсит данные с ответа с помощью re и пересылает на другой сервис

При пересылке (post запрос) заменяет символы в данных, конкретно “ на \x22. Кодировка ответа utf-8, кодировки locale и stdout тоже utf-8, короче везде где можно проверил кодировки - utf-8

.encode(‘utf-8’).decode(‘unicode-escape’) пробовал
.replace(‘\x22’, ‘“‘) естественно тоже
Передавать как json пробовал

Самое странное:
Копирую изначальный ответ в новый питон файл или интерактивный режим, копирую ровно тот же код, и все работает нормально

Есть у мудрых людей мысли что не так делаю?
источник

A

Art in Python Flask
А как все таки правильно записать во Flask-SQLAlchemy чтобы поля Дата создания и Дата Изменения работали корректно?
   created_on = db.Column(db.DateTime, nullable=True, server_default=db.func.now())
   updated_on = db.Column(db.DateTime, nullable=True, server_default=db.func.now(), server_onupdate=db.func.now())
Вот это не работает
источник

A

Art in Python Flask
вернее он при изменении оба поля меняет на текущую дату
источник

h

hightime in Python Flask
Art
А как все таки правильно записать во Flask-SQLAlchemy чтобы поля Дата создания и Дата Изменения работали корректно?
   created_on = db.Column(db.DateTime, nullable=True, server_default=db.func.now())
   updated_on = db.Column(db.DateTime, nullable=True, server_default=db.func.now(), server_onupdate=db.func.now())
Вот это не работает
Я думаю здесь дело не в объявлении модели, а в том, что происходит при изменении на сервере
источник

АП

Агент Печенька... in Python Flask
Art
вернее он при изменении оба поля меняет на текущую дату
Смотри DDL базы, чо там написано.
источник

A

Art in Python Flask
Создавал базу из модели. И он нафигачил таймштампов)
источник

A

Art in Python Flask
created = db.Column(
       db.DateTime, nullable=False, default=datetime.utcnow)
updated = db.Column(db.DateTime, onupdate=datetime.utcnow)
Думаете вот это не поможет?
источник

АП

Агент Печенька... in Python Flask
Не поможет.
источник

A

Art in Python Flask
в доке к flask-sqlalchemy так предлагают
источник

АП

Агент Печенька... in Python Flask
Это по правильному должно быть серверным эвентом, так как у тебя в моделях изначально и написано.
источник

АП

Агент Печенька... in Python Flask
Art
в доке к flask-sqlalchemy так предлагают
Этот вариант будет работать только если через модели работать. Серверный же евент будет работать всегда.
источник

A

Art in Python Flask
а если я в базе в ручную сменю таймштамп на datetime?
источник

АП

Агент Печенька... in Python Flask
Даст пизды.
источник

A

Art in Python Flask
Агент Печенька
Даст пизды.
кто?)
источник

АП

Агент Печенька... in Python Flask
Вернее модели сломаются.
источник

АП

Агент Печенька... in Python Flask
Art
кто?)
Тесты. Которые само собой ты написал.
источник