使用 tornado websockets 时如何处理协程
How to handle coroutine when using tornado websockets
我正在使用 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))
看起来 Motor 可以处理 Mongodb 变更流。 https://motor.readthedocs.io/en/stable/api-asyncio/asyncio_motor_change_stream.html
就我个人而言,我发现 RethinkDB or Firebase 是此类实时功能的更好替代方案。但是在不了解您的需求的情况下,我不能说这是否适合您。
我正在使用 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))
看起来 Motor 可以处理 Mongodb 变更流。 https://motor.readthedocs.io/en/stable/api-asyncio/asyncio_motor_change_stream.html
就我个人而言,我发现 RethinkDB or Firebase 是此类实时功能的更好替代方案。但是在不了解您的需求的情况下,我不能说这是否适合您。