我目前使用的软件堆栈为:Tornado (Websockethandler) + Celery(Task Manager) + RabbitMQ (amqp) + Redis 作为后端。
但是我无法集成 Tornado 和 celery 来处理 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()
关于websocket - 如何在 celery 中为 Tornado 中的 websocket 请求启动任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23651894/