Django Unchained - поговорим

1 234 5
DD
На сайте с 16.05.2012
Offline
82
#21

На данный момент ни ORM, ни View, ни миддлвари не поддерживают асинхронность. Поэтому пока говорить особо не о чем.

Разработка систем сбора данных на Python/Golang/NodeJs
S
На сайте с 23.05.2004
Offline
316
#22
drDaemon:
На данный момент ни ORM, ни View, ни миддлвари не поддерживают асинхронность. Поэтому пока говорить особо не о чем.

Приводите пожалуйста примеры, когда и где эта асинхронность нужна. Я в джанге да и вообще в пайтоне на уровне junior болтаюсь, очень хотелось бы послушать более старших коллег.

Но желательно с нормально раскрытым примером или задачей.

Это просто подпись.
danforth
На сайте с 18.12.2015
Offline
153
#23
drDaemon:
На данный момент ни ORM, ни View, ни миддлвари не поддерживают асинхронность. Поэтому пока говорить особо не о чем.

А как миддлваря может быть асинхронной? Они же чейнятся, грубо говоря, есть три миддлвари: секьюрная (проверяет бан айпи или что-то ещё), логгирующая, аутентифицирующая (и добавляющая в контекст запроса данные юзера). Все три миддлвари должны выполнятся последовательно и порядок должен быть детерминирован. Да и для ОРМ не понятно, какая там асинхронщина должна быть внутри под капотом?

Или вы имеете ввиду, что внутри миддлвари не возможно делать асинхронные вызовы?

Если что, с питоном не знаком.

Junior Web Developer
DD
На сайте с 16.05.2012
Offline
82
#24
danforth:
А как миддлваря может быть асинхронной? Они же чейнятся, грубо говоря, есть три миддлвари: секьюрная (проверяет бан айпи или что-то ещё), логгирующая, аутентифицирующая.

в общем то что бы проверить бан ip, что то логировать, аутентифицировать нужно какой то запрос куда то сделать что бы получить информацию...

Stek:
Приводите пожалуйста примеры, когда и где эта асинхронность нужна.

Например выполнение каких либо сетевых операций. что то загрузить. отправить запрос к Бд. И другие операции которые могут выполняться длительное время блокируя поток выполнения.

S
На сайте с 23.05.2004
Offline
316
#25
drDaemon:
Например выполнение каких либо сетевых операций. что то загрузить. отправить запрос к Бд. И другие операции которые могут выполняться длительное время блокируя поток выполнения.

На примере конкретной задачи пожалуйста.

drDaemon:
в общем то что бы проверить бан ip, что то логировать, аутентифицировать нужно какой то запрос куда то сделать что бы получить информацию...

Логично, что проверка должна стоять первой и если сработала, то к другим мидлеварям уже запрос дойти не должен. Теоретически логирование можно вынести в асинхронный запрос. Но опять же не верно, так как в логах запрос есть, а где то дальше он окажется зарезан. И как понять. был запрос таки или нет ?

DD
На сайте с 16.05.2012
Offline
82
#26
Stek:

Логично, что проверка должна стоять первой и если сработала, то к другим мидлеварям уже запрос дойти не должен. Теоретически логирование можно вынести в асинхронный запрос. Но опять же не верно, так как в логах запрос есть, а где то дальше он окажется зарезан. И как понять. был запрос таки или нет ?

В общем то проверка ip может и не дойти до джанго....

Логирование может быть разное. Не только HTTP запросов.

S
На сайте с 23.05.2004
Offline
316
#27
drDaemon:
В общем то проверка ip может и не дойти до джанго....
Логирование может быть разное. Не только HTTP запросов.

А сервер может быть эпик на 64 ядра и с двумя посетителями в сутки, каждый из которых платит миллион долларов сша.

В общем без рассмотрения конкретной задачи, можно так теоретизировать до бесконечности. Вдруг у нас за спиной инвесторы, которые дают миллионы.

Sly32
На сайте с 29.03.2012
Offline
303
#28
Stek:
На примере конкретной задачи пожалуйста

У меня нет права приводить куски кода, но одну из проблем мы закрыли именно асинхронностью, в разы ускорив работу. В потоке может быть несколько задач и если, ожидание ответа делать асинк - в это время можно выполнять другие задачи - пришел ответ, перехват выполнения и, как в нашем случае - финишер курса.

И ОРМ и миддлвари в данном случае не причем

Aisamiery
На сайте с 12.04.2015
Offline
293
#29
Sly32:
У меня нет права приводить куски кода, но одну из проблем мы закрыли именно асинхронностью, в разы ускорив работу. В потоке может быть несколько задач и если, ожидание ответа делать асинк - в это время можно выполнять другие задачи - пришел ответ, перехват выполнения и, как в нашем случае - финишер курса.
И ОРМ и миддлвари в данном случае не причем

Можно пример вырванный с контекста как вы асинхрон стартуете и потом перехватываете в потоке?

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
S
На сайте с 23.05.2004
Offline
316
#30
Sly32:
У меня нет права приводить куски кода, но одну из проблем мы закрыли именно асинхронностью, в разы ускорив работу.

Я не прошу код, я прошу задачу описать, которая требует асинхронности.

1 234 5

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий