2017-04-24 62 views
1

我有一個存儲大量傳感器狀態信息的django應用程序,我試圖使用elasticsearch存儲所有狀態數據以供進一步分析。在Django中集成elasticsearch連接池

我一般在Python腳本中使用過很多elasticsearch。

我的問題是如何將elasticsearch-py/elasticsearch-dsl連接池集成到django應用程序中。我不想爲每個請求創建一個連接。實際上我試圖將它嵌入到apps.py中的MyAppConfig中,但我不確定這是否是一個好主意。

任何幫助?

回答

3

Elasticsearch-dsl可以通過以下方式輕鬆使用就緒應用程序功能進行集成。

/初始化的.py

default_app_config = '<app>.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設置

然後我有一個名爲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 
      } 
     ] 
    } 
}