| 
					
				 | 
			
			
				@@ -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): 
			 |