Каковы варианты использования для `asyncio.new_event_loop`? - PullRequest
0 голосов
/ 21 января 2020

Я понимаю, что new_event_loop вызывается get_event_loop, если al oop еще не существует - мне интересно, есть ли причины, по которым new_event_loop может быть вызвано в дополнение или вместо типичного get_event_loop.

Кажется, что new_event_loop может использоваться для:

  1. Наличие нескольких циклов событий в одном приложении.
  2. Создание нового события l oop после того, как один был убит.

Хотя я не могу найти вескую причину для того, чтобы сделать что-либо из этого. Ребята, вы когда-нибудь сталкивались с вариантом использования для явного вызова new_event_loop?

1 Ответ

2 голосов
/ 22 января 2020

Явное событие l oop создание в основном используется в двух случаях:

  • Вам необходимо запустить событие l oop из основного потока. Вот что говорят c:

Политика по умолчанию определяет контекст как текущий поток и управляет событием l oop для каждого потока, который взаимодействует с asyncio. Если с текущим потоком еще не связано событие l oop, метод get_event_l oop () политики по умолчанию создает его при вызове из основного потока, но в противном случае вызывает RuntimeError

  • Вы хотите использовать настраиваемую политику в одном приложении (например, поддерживать разные реализации для разных платформ с одним и тем же приложением). Вы можете прочитать о политиках здесь .

В принципе, политика необходима, если вы хотите изменить тип события l oop по умолчанию.

...