|
@@ -31,10 +31,14 @@ class ElasticsearchBackend(KeyValueStoreBackend):
|
|
|
scheme = 'http'
|
|
|
host = 'localhost'
|
|
|
port = 9200
|
|
|
+ es_retry_on_timeout=False
|
|
|
+ es_timeout=10
|
|
|
+ es_max_retries = 3
|
|
|
|
|
|
def __init__(self, url=None, *args, **kwargs):
|
|
|
super(ElasticsearchBackend, self).__init__(*args, **kwargs)
|
|
|
self.url = url
|
|
|
+ _get = self.app.conf.get
|
|
|
|
|
|
if elasticsearch is None:
|
|
|
raise ImproperlyConfigured(E_LIB_MISSING)
|
|
@@ -53,6 +57,17 @@ class ElasticsearchBackend(KeyValueStoreBackend):
|
|
|
self.host = host or self.host
|
|
|
self.port = port or self.port
|
|
|
|
|
|
+ self.es_retry_on_timeout = (
|
|
|
+ _get('elasticsearch_retry_on_timeout') or self.es_retry_on_timeout
|
|
|
+ )
|
|
|
+ self.es_timeout = (
|
|
|
+ _get('elasticsearch_timeout') or self.es_timeout
|
|
|
+ )
|
|
|
+
|
|
|
+ self.es_max_retries = (
|
|
|
+ _get('elasticsearch_max_retries') or self.es_max_retries
|
|
|
+ )
|
|
|
+
|
|
|
self._server = None
|
|
|
|
|
|
def get(self, key):
|
|
@@ -104,7 +119,10 @@ class ElasticsearchBackend(KeyValueStoreBackend):
|
|
|
|
|
|
def _get_server(self):
|
|
|
"""Connect to the Elasticsearch server."""
|
|
|
- return elasticsearch.Elasticsearch('%s:%s' % (self.host, self.port))
|
|
|
+ return elasticsearch.Elasticsearch('%s:%s' % (self.host, self.port),
|
|
|
+ retry_on_timeout=self.es_retry_on_timeout,
|
|
|
+ max_retries=self.es_max_retries,
|
|
|
+ timeout=self.es_timeout)
|
|
|
|
|
|
@property
|
|
|
def server(self):
|