我目前正在使用软件堆栈:Tornado(Websockethandler)Celery(任务管理器)RabbitMQ(amqp)Redis作为后端.
但是我无法将Tornado和芹菜整合到websocket请求中.我们可以为它提供一些指示/示例吗?
注意我使用过CeleryMixin和Tcelery.对我来说效果不好.
提前致谢
最佳答案
https://github.com/mher/tornado-celery允许从Tornado调用Celery任务
from tornado import gen, web
import tcelery, tasks
tcelery.setup_nonblocking_producer()
class AsyncHandler(web.RequestHandler):
@asynchronous
def get(self):
tasks.echo.apply_async(args=['Hello world!'], callback=self.on_result)
def on_result(self, response):
self.write(str(response.result))
self.finish()