2017-04-24 3 views
1

私は多くのセンサーのステータス情報を格納するdjangoアプリケーションを持っています。詳細分析のために、すべてのステータスデータを格納するためにelasticsearchを使用しようとしています。Djangoでelasticsearch接続プールを統合する

私はelasticsearchを一般的にPythonスクリプトで多く使用しています。

私の質問は、elasticsearch-py/elasticsearch-dsl接続プーリングをdjangoアプリケーションに統合する方法です。私はすべての要求に対して接続を作成しないことを望みます。私は実際にapps.py内のMyAppConfigにそれを組み込むことを試みていますが、それが良い考えであるかどうかはわかりません。

助けが必要ですか?

答えて

3

次のように、ready app関数を使用してElasticsearch-dslを簡単に統合できます。

/のinitの.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 = { 
    '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と呼ばれる辞書を持っています