如何在龙卷风中发起针对websocket请求的芹菜任务?

时间:2014-05-14 10:21:40

标签: websocket celery tornado

我目前正在使用软件堆栈:Tornado(Websockethandler)+ Celery(任务管理器)+ RabbitMQ(amqp)+ Redis作为后端。

但是我无法将Tornado和芹菜整合为websocket请求。我们可以为它提供一些指示/示例吗?

注意我使用过CeleryMixin和Tcelery。对我来说效果不好。

提前致谢

1 个答案:

答案 0 :(得分:2)

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()