|  | @@ -40,6 +40,10 @@ def apply_async(task, args=None, kwargs=None, countdown=None, eta=None,
 | 
	
		
			
				|  |  |      :keyword exchange: The named exchange to send the task to. Defaults to
 | 
	
		
			
				|  |  |          :attr:`celery.task.base.Task.exchange`.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    :keyword exchange_type: The exchange type to initalize the exchange as
 | 
	
		
			
				|  |  | +        if not already declared.
 | 
	
		
			
				|  |  | +        Defaults to :attr:`celery.task.base.Task.exchange_type`.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      :keyword immediate: Request immediate delivery. Will raise an exception
 | 
	
		
			
				|  |  |          if the task cannot be routed to a worker immediately.
 | 
	
		
			
				|  |  |          (Do not confuse this parameter with the ``countdown`` and ``eta``
 | 
	
	
		
			
				|  | @@ -72,8 +76,10 @@ def apply_async(task, args=None, kwargs=None, countdown=None, eta=None,
 | 
	
		
			
				|  |  |      task = tasks[task.name] # get instance from registry
 | 
	
		
			
				|  |  |      options = dict(extract_exec_options(task), **options)
 | 
	
		
			
				|  |  |      exchange = options.get("exchange")
 | 
	
		
			
				|  |  | +    exchange_type = options.get("exchange_type")
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    publish = publisher or task.get_publisher(connection, exchange=exchange)
 | 
	
		
			
				|  |  | +    publish = publisher or task.get_publisher(connection, exchange=exchange,
 | 
	
		
			
				|  |  | +                                              exchange_type=exchange_type)
 | 
	
		
			
				|  |  |      try:
 | 
	
		
			
				|  |  |          task_id = publish.delay_task(task.name, args, kwargs, task_id=task_id,
 | 
	
		
			
				|  |  |                                       countdown=countdown, eta=eta, **options)
 | 
	
	
		
			
				|  | @@ -89,7 +95,10 @@ def send_task(name, args=None, kwargs=None, countdown=None, eta=None,
 | 
	
		
			
				|  |  |          result_cls=AsyncResult, **options):
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      exchange = options.get("exchange")
 | 
	
		
			
				|  |  | -    publish = publisher or TaskPublisher(connection, exchange=exchange)
 | 
	
		
			
				|  |  | +    exchange_type = options.get("exchange_type")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    publish = publisher or TaskPublisher(connection, exchange=exchange,
 | 
	
		
			
				|  |  | +                                         exchange_type=exchange_type)
 | 
	
		
			
				|  |  |      try:
 | 
	
		
			
				|  |  |          task_id = publish.delay_task(name, args, kwargs, task_id=task_id,
 | 
	
		
			
				|  |  |                                       countdown=countdown, eta=eta, **options)
 |