Skip to content

Commit 23005b2

Browse files
Acey9georgepsarakis
authored andcommitted
supports elasticsearch backend options settings
1 parent cb3e58c commit 23005b2

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

celery/backends/elasticsearch.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,14 @@ class ElasticsearchBackend(KeyValueStoreBackend):
3131
scheme = 'http'
3232
host = 'localhost'
3333
port = 9200
34+
es_retry_on_timeout=False
35+
es_timeout=10
36+
es_max_retries = 3
3437

3538
def __init__(self, url=None, *args, **kwargs):
3639
super(ElasticsearchBackend, self).__init__(*args, **kwargs)
3740
self.url = url
41+
_get = self.app.conf.get
3842

3943
if elasticsearch is None:
4044
raise ImproperlyConfigured(E_LIB_MISSING)
@@ -53,6 +57,17 @@ def __init__(self, url=None, *args, **kwargs):
5357
self.host = host or self.host
5458
self.port = port or self.port
5559

60+
self.es_retry_on_timeout = (
61+
_get('elasticsearch_retry_on_timeout') or self.es_retry_on_timeout
62+
)
63+
self.es_timeout = (
64+
_get('elasticsearch_timeout') or self.es_timeout
65+
)
66+
67+
self.es_max_retries = (
68+
_get('elasticsearch_max_retries') or self.es_max_retries
69+
)
70+
5671
self._server = None
5772

5873
def get(self, key):
@@ -104,7 +119,10 @@ def delete(self, key):
104119

105120
def _get_server(self):
106121
"""Connect to the Elasticsearch server."""
107-
return elasticsearch.Elasticsearch('%s:%s' % (self.host, self.port))
122+
return elasticsearch.Elasticsearch('%s:%s' % (self.host, self.port),
123+
retry_on_timeout=self.es_retry_on_timeout,
124+
max_retries=self.es_max_retries,
125+
timeout=self.es_timeout)
108126

109127
@property
110128
def server(self):

0 commit comments

Comments
 (0)