-
Notifications
You must be signed in to change notification settings - Fork 11
Переход на корутины
Andrew Sumin edited this page Dec 7, 2018
·
7 revisions
Было:
def get_page(self):
return {
'request': self.GET(
host, uri,
fail_on_error=True
)
}
def get_page_requests_done(self, results):
self.json.put(results['request'])
def get_page_requests_failed(self, name, data, response):
raise HTTPError(500, '{} failed with data {}'.format(name, data))
Стало:
def get_page(self):
result = yield self.get_url(
host, uri,
fail_fast=True,
parse_on_error=True,
)
self.json.put(result)
def get_page_fail_fast(self, result):
raise HTTPError(500, '{} failed with data {}'.format(result.name, result.data))
- вместо return dict нужно делать yield dict/list/чтоугодно из фьюч, как в нормальной торнаде
- *_page_requests_done не нужен
- fail_on_error переименован в fail_fast, теперь он работает гораздо более прямолинейно — кидает эксепшен и вызывает обработчик
- обработчик переименован из *_page_requests_failed в *_page_fail_fast
- методы self.GET, self.POST итп удалены и заменены на обычные get_url, post_url
- все аргументы get_url, post_url итп кроме host и uri — keyword-only, их можно передать только через kwargs (через позиционные нельзя)
-
parse_on_error по умолчанию Falseparse_on_error по умолчанию True везде (раньше только в микрохендлере) - появился кварг name, которым можно задать имя реквеста