Size: a a a

2020 November 24

RB

Roman Bolkhovitin in rannts
Ок, рахмат )
источник

SS

Sergey Smyshlyaev in rannts
О, там дебаты будут
источник
2020 November 25

AS

Artem Savinov in rannts
никто не пробовал https://pypi.org/project/pytest-testmon/ ?
источник

AM

Artem Malyshev in rannts
Пробовал. Работает отлично если тесты тяжёлые. Типо в базу ходят.
источник

AM

Artem Malyshev in rannts
В связке с pytest watch вообще хорошо.
источник

AS

Artem Savinov in rannts
Artem Malyshev
В связке с pytest watch вообще хорошо.
ну он больше именно для девелопера- верно?
источник

AM

Artem Malyshev in rannts
Да, на CI нет смысла т.к. там файлы не меняются.
источник

AS

Artem Savinov in rannts
ок, спасибо
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Обнаружил что aiohttp-сервер не умеет в нормальный graceful shutdown 😞
Вместо этого он гасит все таски, которые есть в евент-лупе, а потом ждёт пока закроются все конекты.
И если в этот момент работала какая-то хитрая вьюшка, которая стримила юзеру много данных - она просто встанет колом. Но конект при этом не будет разорван.
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Вот вам и светоч асинхронного питона. Такую важную штуку и не умеет.
источник

KK

Kirill (Cykooz) Kuzm... in rannts
А без этой штуки придётся поприседать, что бы реализовать blue-green deploy.
источник

F

Fred in rannts
Kirill (Cykooz) Kuzminykh
Обнаружил что aiohttp-сервер не умеет в нормальный graceful shutdown 😞
Вместо этого он гасит все таски, которые есть в евент-лупе, а потом ждёт пока закроются все конекты.
И если в этот момент работала какая-то хитрая вьюшка, которая стримила юзеру много данных - она просто встанет колом. Но конект при этом не будет разорван.
источник

F

Fred in rannts
ну хоть что-то)
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Ну вот эти все шатдоун-калбяки вызываются видимо когда уже поздно - у меня не получилось пока их заюзать. Сервер просто перестаёт отдавать клиенту данные, хотя я в "зависаю" в этом калбяке, ожидая пока не завершаться все запросы.
источник

F

Fred in rannts
я бы не использовал кстати aiohttp, если проект новый память течёт страшно, помогает рестарт инстанса)
источник

RB

Roman Bolkhovitin in rannts
а это точно aiohttp виноват? )
источник

F

Fred in rannts
да, посмотри ишю на гите, куча утечек, websocket ы текут ужасно
источник

KK

Kirill (Cykooz) Kuzm... in rannts
У меня если что и "течёт" - то только из-за фрагментации памяти, которую очень легко можно словить а в асинхронке. Но у меня веб-сокеты не юзаются.
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Так, чутка разобрался с этим graceful shutdown в aiohttp. В aiohttp-сервере есть два сигнала
on_shutdown
on_cleanup

Сначала вызывается первый, а второй уже после него.
Моя ошибка была в том, что я во всех приложениях вешал на первый сигнал обработчики, которые всё закрывали и убивали. Например закрывали клиентскую HTTP-сессию, которая использовалась для отправки http-запросов из приложения. Или гасил кастомные executor-ы, которые выполняли блокирующий код. Всё это на самом деле надо делать в обработчиках второго сигнала. А первый как раз нужен, что бы подготовиться к остановке сервера.
источник

RB

Roman Bolkhovitin in rannts
Светлов реабилитирован?
источник