|  | @@ -4,6 +4,7 @@ Working with tasks and task sets.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  """
 | 
	
		
			
				|  |  |  from carrot.connection import DjangoAMQPConnection
 | 
	
		
			
				|  |  | +from celery.conf import AMQP_CONNECTION_TIMEOUT
 | 
	
		
			
				|  |  |  from celery.messaging import TaskPublisher, TaskConsumer
 | 
	
		
			
				|  |  |  from celery.log import setup_logger
 | 
	
		
			
				|  |  |  from celery.registry import tasks
 | 
	
	
		
			
				|  | @@ -16,7 +17,7 @@ import pickle
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  def apply_async(task, args=None, kwargs=None, routing_key=None,
 | 
	
		
			
				|  |  |          immediate=None, mandatory=None, connection=None,
 | 
	
		
			
				|  |  | -        connect_timeout=None, priority=None):
 | 
	
		
			
				|  |  | +        connect_timeout=AMQP_CONNECTION_TIMEOUT, priority=None):
 | 
	
		
			
				|  |  |      """Run a task asynchronously by the celery daemon(s).
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      :param task: The task to run (a callable object, or a :class:`Task`
 | 
	
	
		
			
				|  | @@ -100,7 +101,7 @@ def delay_task(task_name, *args, **kwargs):
 | 
	
		
			
				|  |  |      return apply_async(task, args, kwargs)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -def discard_all():
 | 
	
		
			
				|  |  | +def discard_all(connect_timeout=AMQP_CONNECTION_TIMEOUT):
 | 
	
		
			
				|  |  |      """Discard all waiting tasks.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      This will ignore all tasks waiting for execution, and they will
 | 
	
	
		
			
				|  | @@ -111,7 +112,7 @@ def discard_all():
 | 
	
		
			
				|  |  |      :rtype: int
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      """
 | 
	
		
			
				|  |  | -    amqp_connection = DjangoAMQPConnection()
 | 
	
		
			
				|  |  | +    amqp_connection = DjangoAMQPConnection(connect_timeout=connect_timeout)
 | 
	
		
			
				|  |  |      consumer = TaskConsumer(connection=amqp_connection)
 | 
	
		
			
				|  |  |      discarded_count = consumer.discard_all()
 | 
	
		
			
				|  |  |      amqp_connection.close()
 | 
	
	
		
			
				|  | @@ -231,7 +232,8 @@ class Task(object):
 | 
	
		
			
				|  |  |              >>> publisher.connection.close()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  | -        return TaskPublisher(connection=DjangoAMQPConnection())
 | 
	
		
			
				|  |  | +        return TaskPublisher(connection=DjangoAMQPConnection(
 | 
	
		
			
				|  |  | +                                connect_timeout=AMQP_CONNECTION_TIMEOUT))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def get_consumer(self):
 | 
	
		
			
				|  |  |          """Get a celery task message consumer.
 | 
	
	
		
			
				|  | @@ -246,7 +248,8 @@ class Task(object):
 | 
	
		
			
				|  |  |              >>> consumer.connection.close()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  | -        return TaskConsumer(connection=DjangoAMQPConnection())
 | 
	
		
			
				|  |  | +        return TaskConsumer(connection=DjangoAMQPConnection(
 | 
	
		
			
				|  |  | +                                connect_timeout=AMQP_CONNECTION_TIMEOUT))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @classmethod
 | 
	
		
			
				|  |  |      def delay(cls, *args, **kwargs):
 | 
	
	
		
			
				|  | @@ -326,7 +329,7 @@ class TaskSet(object):
 | 
	
		
			
				|  |  |          self.arguments = args
 | 
	
		
			
				|  |  |          self.total = len(args)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    def run(self):
 | 
	
		
			
				|  |  | +    def run(self, connect_timeout=AMQP_CONNECTION_TIMEOUT):
 | 
	
		
			
				|  |  |          """Run all tasks in the taskset.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          :returns: A :class:`celery.result.TaskSetResult` instance.
 | 
	
	
		
			
				|  | @@ -357,7 +360,7 @@ class TaskSet(object):
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  |          taskset_id = str(uuid.uuid4())
 | 
	
		
			
				|  |  | -        conn = DjangoAMQPConnection()
 | 
	
		
			
				|  |  | +        conn = DjangoAMQPConnection(connect_timeout=connect_timeout)
 | 
	
		
			
				|  |  |          publisher = TaskPublisher(connection=conn)
 | 
	
		
			
				|  |  |          subtask_ids = [publisher.delay_task_in_set(task_name=self.task_name,
 | 
	
		
			
				|  |  |                                                     taskset_id=taskset_id,
 | 
	
	
		
			
				|  | @@ -573,3 +576,5 @@ class DeleteExpiredTaskMetaTask(PeriodicTask):
 | 
	
		
			
				|  |  |          logger.info("Deleting expired task meta objects...")
 | 
	
		
			
				|  |  |          default_backend.cleanup()
 | 
	
		
			
				|  |  |  tasks.register(DeleteExpiredTaskMetaTask)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 |