【问题标题】:How to handle coroutine when using tornado websockets使用tornado websockets时如何处理协程
【发布时间】:2020-07-16 01:30:29
【问题描述】:

我正在使用 tornado websockets,它工作正常。

但是,我想监听 MongoDB 集合的更改并将新更改发送到 websocket 客户端。

我无法让它通过线程运行,并且我看到不鼓励在 tornado 中使用线程。

我现在真的被困住了。我该如何继续?

(阻塞)代码:

    def open(self):
        print("Opening Connection")
        with self.collection.watch() as stream:
            for change in stream:
                doc = change["fullDocument"]
                self.write_message(u"%s" % json.dumps(doc))

【问题讨论】:

    标签: python websocket python-asyncio tornado nonblocking


    【解决方案1】:

    看起来 Motor 可以处理 Mongodb 变更流。 https://motor.readthedocs.io/en/stable/api-asyncio/asyncio_motor_change_stream.html

    就个人而言,我发现RethinkDBFirebase 是此类实时功能的更好选择。但在不了解您的需求的情况下,我不能说这是否对您有好处。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      • 2020-01-10
      • 1970-01-01
      • 2021-12-14
      相关资源
      最近更新 更多