我想使用reinstdb.changes()特性将一些消息推送到用户。消息应该在没有用户请求的情况下发送。在
我正在使用rejectdb和aiohttp和websockets。工作原理:
.changes
函数向连接的用户发送更新我是这样启动应用程序的:
@asyncio.coroutine
def init(loop):
app = Application(loop=loop)
app['sockets'] = []
app['susers'] = []
app.router.add_route('GET', '/', wshandler)
handler = app.make_handler()
srv = yield from loop.create_server(handler, '127.0.0.1', 9080)
print("Server started at http://127.0.0.1:9080")
return app, srv, handler
在wshandler
中,我有一个循环,它处理传入的消息:
如何创建第二个循环,向同一个打开的连接池发送消息?如何使其线程安全?在
一般来说,在运行事件循环时,应该尽量避免线程。在
不幸的是,
rethinkdb
不支持现成的asyncio
,但它确实支持Tornado & Twisted框架。 因此,您可以bridgeTornado&;asyncio
使其工作而不使用线程。在编辑:
正如Andrew所指出的,
rethinkdb
确实支持asyncio
。在2.1.0之后,您大概可以:然后在web处理程序中:
^{pr2}$相关问题 更多 >
编程相关推荐