Mam aplikację internetową zbudowaną na strukturze asynchronicznej Python 3.5+ (apistar, sanic, itp.). Aplikacja wykonuje różne wywołania IO - do bazy danych, Redis, itd. - które również są asynchroniczne.Kiedy używać wielu pętli zdarzeń?
Some docs zalecamy stosowanie dodatkowej pętli zdarzenia:
import asyncio
import peewee
from peewee_async import Manager, PostgresqlDatabase
loop = asyncio.new_event_loop() # Note: custom loop!
database = PostgresqlDatabase('test')
objects = Manager(database, loop=loop)
To moja zrozumienie, że await
oświadczenia pozwalają pętlę zdarzeń do przełączania kontekstu, kiedy to uderza IO, więc dodatkowe pętle zdarzeń wydaje się zupełnie zbędne.
Jakie korzyści wynikają z zastosowania dodatkowej pętli zdarzeń i kiedy należy użyć dodatkowych pętli?