Сельдерей Торнадо не может использовать gen.Task или CallBack

class AsyncHandler(tornado.web.RequestHandler): @tornado.web.asynchronous def get(self): tasks.sleep.apply_async(args=[5], callback=self.on_result) def on_result(self, response): self.write(str(response.result)) self.finish() 

ошибка повышения:

  raise TypeError(repr(o) + " is not JSON serializable") TypeError: <bound method AsyncHandler.on_result of <__main__.AsyncHandler object at 0x10e7a19d0>> is not JSON serializable 

Брокер и бэкэнд используют redis, я просто скопировал его с https://github.com/mher/tornado-celery

Когда я использую брокер amqp broker и redis, он работает хорошо, но не при использовании брокера redis. Это потому, что асинхронный торнадо не поддерживает redis broker?

One Solution collect form web for “Сельдерей Торнадо не может использовать gen.Task или CallBack”

Док говорит:

ПРИМЕЧАНИЕ. В настоящее время обратные вызовы работают только с AMQP и Redis. Чтобы использовать резервный сервер Redis, вы должны установить торнадо-redis.

Таким образом, торнадо-сельдерей не поддерживает redis в качестве брокера … он работает, когда я использую rabbitmq в качестве брокера + redis в качестве бэкэнд.

Python - лучший язык программирования в мире.