Esempio n. 1
0
def es(loop):
    es = Elasticsearch(loop=loop)

    delete_template = es.transport.perform_request(
        'DELETE',
        '/_template/*',
    )
    delete_all = es.transport.perform_request(
        'DELETE',
        '/_all',
    )
    coros = [delete_template, delete_all]
    coro = asyncio.gather(*coros, loop=loop)
    loop.run_until_complete(coro)

    try:
        yield es
    finally:
        loop.run_until_complete(es.close())
Esempio n. 2
0
class DefaultConnnectionFactoryUtility:
    """
    Default uses single connection for entire application
    """
    def __init__(self):
        self._conn = None

    def get(self, loop=None):
        if self._conn is None:
            self._conn = Elasticsearch(
                loop=loop,
                **app_settings.get("elasticsearch",
                                   {}).get("connection_settings"),
            )
        return self._conn

    async def close(self, loop=None):
        if self._conn is not None:
            if loop is not None:
                asyncio.run_coroutine_threadsafe(self._conn.close(), loop)
            else:
                await self._conn.close()
            self._conn = None