首页 > 解决方案 > 将 elasticsearch_async 与龙卷风一起使用

问题描述

我正在尝试将 elasticsearch_async ( repo ) 与 tornado 6.0.3 一起使用。

根据我对代码的理解,如果我使用AsyncElasticSearch并传递当前的 tornado ioloop,它将起作用。有人可以确认或指出一个例子吗?

我的第二个问题是 - 我在内部看到AsyncElasticSearch使用AIOHttpConnection代码)作为默认值connection_class。我是否需要创建一个新的connection_class适配器来传递给connection_class使用龙卷风的适配器,AsyncHttpClient或者龙卷风是否可以无缝工作AIOHttpConnection

标签: python-3.xelasticsearchasynchronoustornado

解决方案


根据我对代码的理解,如果我使用 AsyncElasticSearch 并传递当前的龙卷风 ioloop,它将起作用。有人可以确认或指出一个例子吗?

AsyncElasticSearch 想要一个asyncio事件循环,而不是 Tornado IOLoop。但在 Tornado 6 中,Tornado IOLoop 只是 asyncio 事件循环的一个包装器,所以如果你忽略所有这些并使用默认值,一切都应该正常工作。

我是否需要创建一个新的 connection_class 适配器以传递给使用 tornado 的 AsyncHttpClient 的 connection_class,或者 tornado 是否可以与 AIOHttpConnection 无缝工作?

不。只要让 AsyncElasticSearch 使用 aiohttp,即使您的应用程序的其他部分正在使用 AsyncHTTPClient。它应该一起工作(尽管我实际上没有尝试过这种组合)。


推荐阅读