如何在 Tornado 中为 Websocket 请求初始化 Celery 任务?

4
我目前使用的软件堆栈是: Tornado (Websockethandler) + Celery (任务管理器) + RabbitMQ (AMQP) + Redis 作为后端。
然而,我无法将Tornado和Celery整合到websocket请求中。我们可以有一些指针/示例吗?
请注意,我已经使用了CeleryMixin和Tcelery。对我来说效果并不好。
提前感谢。
1个回答

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

不允许我将其与WebSocket处理程序一起使用。 - user3446151

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接