|  | @@ -7,6 +7,7 @@ import time
 | 
	
		
			
				|  |  |  import threading
 | 
	
		
			
				|  |  |  from Queue import Empty as QueueEmpty
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +from celery import conf
 | 
	
		
			
				|  |  |  from celery import log
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -101,10 +102,12 @@ class Mediator(BackgroundThread):
 | 
	
		
			
				|  |  |  class ScheduleController(BackgroundThread):
 | 
	
		
			
				|  |  |      """Schedules tasks with an ETA by moving them to the bucket queue."""
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    def __init__(self, eta_schedule, logger=None):
 | 
	
		
			
				|  |  | +    def __init__(self, eta_schedule, logger=None,
 | 
	
		
			
				|  |  | +            precision=None):
 | 
	
		
			
				|  |  |          super(ScheduleController, self).__init__()
 | 
	
		
			
				|  |  |          self.logger = logger or log.get_default_logger()
 | 
	
		
			
				|  |  |          self._scheduler = iter(eta_schedule)
 | 
	
		
			
				|  |  | +        self.precision = precision or conf.CELERYD_ETA_SCHEDULER_PRECISION
 | 
	
		
			
				|  |  |          self.debug = log.SilenceRepeated(self.logger.debug, max_iterations=10)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def on_iteration(self):
 | 
	
	
		
			
				|  | @@ -112,4 +115,4 @@ class ScheduleController(BackgroundThread):
 | 
	
		
			
				|  |  |          delay = self._scheduler.next()
 | 
	
		
			
				|  |  |          self.debug("ScheduleController: Scheduler wake-up"
 | 
	
		
			
				|  |  |                  "ScheduleController: Next wake-up eta %s seconds..." % delay)
 | 
	
		
			
				|  |  | -        time.sleep(delay or 1)
 | 
	
		
			
				|  |  | +        time.sleep(delay or self.precision)
 |