Size: a a a

2017 October 21

N

Nikolay in Moscow Python
так что проще использовать ensure_future чаще и не париться
источник

СК

Сергей Козλов ⚡️🧙🏻‍♂️ in Moscow Python
Спасибо большое всем!
источник

СК

Сергей Козλов ⚡️🧙🏻‍♂️ in Moscow Python
Хорошо 👍🙈
источник

AO

Anton Ost in Moscow Python
Nikolay
для того, чтобы дергать явно create_task - надо явно передавать везде объект лупа. От этого подхода отказались в питоне 3.6+
Откуда такая информация и кто именно отказался? )
источник

N

Nikolay in Moscow Python
Anton Ost
Откуда такая информация и кто именно отказался? )
источник

N

Nikolay in Moscow Python
Там было много неявной магии, и ребята починили в 3.6, чтобы asyncio.get_event_loop() всегда давал текущий луп. Что позволило не париться о том, чтобы его явно везде передавать, как рекомендовалось делать ранее
источник

СК

Сергей Козλов ⚡️🧙🏻‍♂️ in Moscow Python
А ситуации когда у тебя несколько лупов по идее не должно быть. Ну смысла я не вижу в нескольких лупах
источник

AO

Anton Ost in Moscow Python
Nikolay
Там было много неявной магии, и ребята починили в 3.6, чтобы asyncio.get_event_loop() всегда давал текущий луп. Что позволило не париться о том, чтобы его явно везде передавать, как рекомендовалось делать ранее
I think there's a whole new recommendation for library authors. They should just rely on get_event_loop() except under two circumstances:

- When you need a loop but your loop is not yet running. Note that this should be very rare -- e.g. when you're calling a coroutine function like asyncio.sleep() and passing it to another loop (or to run_until_complete()) you do *not* need the loop because the body of the coroutine doesn't start running until it is first scheduled.

- When run inside an application, framework or test that explicitly sets the global event loop to None. This should only be a backwards compatibility concern at this point: we should recommend that such apps, frameworks and tests switch to allowing get_event_loop(), *unless* they are bound to backward requirement with the stdlib asyncio in Python 3.4 or 3.5.3 (or old asyncio installations on 3.3).

--Guido
источник

AO

Anton Ost in Moscow Python
если app будет гарантировано работать на >= 3.6 то можно доверять get_event_loop()
источник

AS

Andrew Svetlov in Moscow Python
3.5.3+ если быть точным
источник

AO

Anton Ost in Moscow Python
Andrew Svetlov
3.5.3+ если быть точным
да )
источник

N

Nikolay in Moscow Python
Сергей Козλов ⚡️🧙🏻‍♂️
А ситуации когда у тебя несколько лупов по идее не должно быть. Ну смысла я не вижу в нескольких лупах
Если у тебя комбинация тредов и asyncio - то будет несколько
источник

N

Nikolay in Moscow Python
Andrew Svetlov
3.5.3+ если быть точным
Я немного радикален в этом :) мне кажется, что если человек в 2017 году стартует проект на питоне <3.5 - он ССЗБ
источник

СК

Сергей Козλов ⚡️🧙🏻‍♂️ in Moscow Python
Nikolay
Если у тебя комбинация тредов и asyncio - то будет несколько
Спасибо большое
источник

СК

Сергей Козλов ⚡️🧙🏻‍♂️ in Moscow Python
То есть если у меня обычное wsgi приложение то в каждом потоке будет свой луп? Я же могу общий использовать и тогда get_event_lopp будет давать один и тот же луп
источник

AS

Andrew Svetlov in Moscow Python
Если обычное wsgi -- забудьте про asyncio. Эти миры не пересекаются.
источник

СК

Сергей Козλов ⚡️🧙🏻‍♂️ in Moscow Python
Почему? Я же могу запустить допусти 1к http запросов в текущем потоке вместо создания потоков
источник

AS

Andrew Svetlov in Moscow Python
@Nikolay какая версия Python в последнем Debian?
источник

AS

Andrew Svetlov in Moscow Python
Нет, толку -- ноль. 1к запросов будет занимать непозволительно большое время, хоть последовательно хоть параллельно. За сколько милисекунд вы должны давать HTTP ответ? Несопоставимые времена
источник

AT

Anton Tuchak in Moscow Python
@asvetlov ip-172-31-29-143:~# python3 -V
Python 3.5.3
источник