elasticsearch,connection-pooling,Python,Django,elasticsearch,Connection Pooling" /> elasticsearch,connection-pooling,Python,Django,elasticsearch,Connection Pooling" />

Python 在Django中集成elasticsearch连接池

Python 在Django中集成elasticsearch连接池,python,django,elasticsearch,connection-pooling,Python,Django,elasticsearch,Connection Pooling,我有一个django应用程序,它存储了很多传感器的状态信息,我正在尝试使用elasticsearch来存储所有的状态数据,以便进一步分析 一般来说,我在Python脚本中经常使用elasticsearch 我的问题是如何将elasticsearch py/elasticsearch dsl连接池集成到django应用程序中。我不想为每个请求创建连接。实际上,我正试图在apps.py内将其盗用到MyAppConfig中,但我不确定这是否是个好主意 有任何帮助吗?可以通过以下方式使用ready ap

我有一个django应用程序,它存储了很多传感器的状态信息,我正在尝试使用elasticsearch来存储所有的状态数据,以便进一步分析

一般来说,我在Python脚本中经常使用elasticsearch

我的问题是如何将elasticsearch py/elasticsearch dsl连接池集成到django应用程序中。我不想为每个请求创建连接。实际上,我正试图在apps.py内将其盗用到MyAppConfig中,但我不确定这是否是个好主意


有任何帮助吗?

可以通过以下方式使用ready app功能轻松集成Elasticsearch dsl

/init.py

default_app_config = '<app>.apps.AppConfig'
default_app_config='.apps.AppConfig'
/apps.py

import logging

from django.apps import AppConfig
from django.conf import settings
from elasticsearch_dsl.connections import connections

log = logging.getLogger('elastic')


class AppConfig(AppConfig):
    name = <app_name>

    def ready(self):
        connections.configure(**settings.ELASTICSEARCH)
导入日志
从django.apps导入AppConfig
从django.conf导入设置
从elasticsearch_dsl.connections导入连接
log=logging.getLogger('elastic')
类AppConfig(AppConfig):
姓名=
def就绪(自我):
连接。配置(**设置。ELASTICSEARCH)
然后在django设置中,我有一个名为elasticsearch的字典,带有别名配置

ELASTICSEARCH = {
    'default': {
        'hosts': [
            {
                'host': <your_host>,
                'port': <your_host_port>,
                'verify_certs': True,
                'use_ssl': True,
                'http_auth': (
                    <auth_name>,
                    <auth_passwd>
                )
            }
        ]
    },
    'dev': {
        'hosts': [
            {
                'host': 'localhost',
                'port': 9200
            }
        ]
    }
}
ELASTICSEARCH={
“默认值”:{
“主持人”:[
{
“主机”:,
“端口”:,
“验证证书”:True,
“使用ssl”:True,
“http_auth”:(
,
)
}
]
},
“开发人员”:{
“主持人”:[
{
'主机':'本地主机',
“端口”:9200
}
]
}
}