Что происходит внутри асинхронного кода? Как быть, когда логика становится cpu-bound? Можно ли сделать гибридную синхронно-асинхронную архитектуру? Я попробую ответить на эти вопросы на примере приложения на Tornado. Сделаю визуализацию работы приложения и предложу пути решения некоторых проблем.
11. ЭКСПЕРИМЕНТ
ХЕНДЛЕР
casApade(bet:
ls pHnlrojc)
@e.nie
gnegn
dfpoessl,clbc)
e rcs(ef alak:
yedgnTs(efd_o
il e.aksl.oi)
sl.ocu)
efd_p(
rsls=yed[e.aksl.obac)
eut il gnTs(efd_rnh,
gnTs(efd_rnh]
e.aksl.obac)
sl.ocu)
efd_p(
yedgnTs(efd_o
il e.aksl.oi)
sl.ocu)
efd_p(
clbc(o'
alak'k)
12. ЭКСПЕРИМЕНТ
ХЕНДЛЕР
casApade(bet:
ls pHnlrojc)
#..
.
dfd_p(ef cce=000)
e ocusl, yls1000:
fr_i xag(yls:
o n rnecce)
ps
as
@e.nie
gnegn
dfd_osl,clbc)
e oi(ef alak:
yedgnTs(efht_letfth 'tp/lclot50/)
il e.aksl.tpcin.ec, ht:/oahs:01'
clbc(oe
alakNn)
@e.nie
gnegn
dfd_rnhsl,clbc)
e obac(ef alak:
yed[e.aksl.oi)fr_i rne5]
il gnTs(efd_o o n ag()
sl.ocu)
efd_p(
clbc(oe
alakNn)
13. ЭКСПЕРИМЕНТ
ПРИЛОЖЕНИЕ
fo traoipr wb
rm ond mot e
fo hnlripr Apade
rm ade mot pHnlr
casRoHnlrwbRqetade)
ls otade(e.eusHnlr:
@e.snhoos
wbaycrnu
dfgtsl)
e e(ef:
hnlr=Apade(
ade pHnlr)
hnlrpoessl.eunrsos)
ade.rcs(efrtr_epne
dfrtr_epnesl,rsos)
e eunrsos(ef epne:
sl.iihrsos)
effns(epne
apiain=wbApiain[
plcto e.plcto(
('' RoHnlr,
r/, otade)
])