|  | @@ -315,7 +315,8 @@ class Celery(object):
 | 
	
		
			
				|  |  |      def connection(self, hostname=None, userid=None, password=None,
 | 
	
		
			
				|  |  |                     virtual_host=None, port=None, ssl=None,
 | 
	
		
			
				|  |  |                     connect_timeout=None, transport=None,
 | 
	
		
			
				|  |  | -                   transport_options=None, heartbeat=None, **kwargs):
 | 
	
		
			
				|  |  | +                   transport_options=None, heartbeat=None,
 | 
	
		
			
				|  |  | +                   login_method=None, failover_strategy=None, **kwargs):
 | 
	
		
			
				|  |  |          conf = self.conf
 | 
	
		
			
				|  |  |          return self.amqp.Connection(
 | 
	
		
			
				|  |  |              hostname or conf.BROKER_URL,
 | 
	
	
		
			
				|  | @@ -325,12 +326,18 @@ class Celery(object):
 | 
	
		
			
				|  |  |              port or conf.BROKER_PORT,
 | 
	
		
			
				|  |  |              transport=transport or conf.BROKER_TRANSPORT,
 | 
	
		
			
				|  |  |              ssl=self.either('BROKER_USE_SSL', ssl),
 | 
	
		
			
				|  |  | -            connect_timeout=self.either(
 | 
	
		
			
				|  |  | -                'BROKER_CONNECTION_TIMEOUT', connect_timeout),
 | 
	
		
			
				|  |  |              heartbeat=heartbeat,
 | 
	
		
			
				|  |  | -            login_method=self.either('BROKER_LOGIN_METHOD', None),
 | 
	
		
			
				|  |  | -            transport_options=dict(conf.BROKER_TRANSPORT_OPTIONS,
 | 
	
		
			
				|  |  | -                                   **transport_options or {}))
 | 
	
		
			
				|  |  | +            login_method=login_method or self.app.conf.BROKER_LOGIN_METHOD,
 | 
	
		
			
				|  |  | +            failover_strategy=(
 | 
	
		
			
				|  |  | +                failover_strategy or conf.BROKER_FAILOVER_STRATEGY
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            transport_options=dict(
 | 
	
		
			
				|  |  | +                conf.BROKER_TRANSPORT_OPTIONS, **transport_options or {}
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            connect_timeout=self.either(
 | 
	
		
			
				|  |  | +                'BROKER_CONNECTION_TIMEOUT', connect_timeout
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +        )
 | 
	
		
			
				|  |  |      broker_connection = connection
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @contextmanager
 |