торнадо v6, кажется, упал tornado.web.asynchronous сопрограммы.любой другой способ исправить это в коде? - PullRequest
0 голосов
/ 02 апреля 2019

Мигрированный torando v5.1 до v6.но асинхронная сопрограмма, кажется, удалили.Любые предложения по ее исправлению?

Миграция проекта с 2.7 на 3.6, в то же время перемещение платформы торнадо с v5.1 на v6.0.2 из-за ошибки, предложенной в этом [ Python-коде для DynamoDBзапрос работает на v3.6, но не работает в потоке python 2.7 strackoverflow.

После установки v6 торнадо он ломается с ошибкой ниже.

Python3 xxxx.py

Traceback (most recent call last):
  File "XXXX.py", line 200, in <module>
    class MainHandler(tornado.web.RequestHandler):
  File "XXXX.py", line 201, in MainHandler
    @tornado.web.asynchronous
AttributeError: module 'tornado.web' has no attribute 'asynchronous'

Встречайте https://github.com/mher/flower/issues/878 тему, сталкивающуюся с той же проблемой.можно ли это исправить?или какой-нибудь альтернативный способ представления вещей в коде?

1 Ответ

1 голос
/ 05 апреля 2019

Обработчик @asynchronous устарел в 5.1 и удален в 6.0. Вместо использования @asynchronous и обратных вызовов вы должны использовать сопрограммы (используя либо @tornado.gen.coroutine, либо async def).

Обратите внимание, что в нескольких более старых примерах кода и для @asynchronous, и для @coroutine использовался один и тот же метод. Помещение @asynchronous в сопрограмму ничего не делает, поэтому, если вы используете оба декоратора, вы можете просто удалить @asynchronous, ничего не меняя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...