Переглянути джерело

Burst through several eta tasks at once, do not always sleep between scheduler iterations.

Ask Solem 15 роки тому
батько
коміт
ce87ec5752
2 змінених файлів з 2 додано та 5 видалено
  1. 1 4
      celery/worker/controllers.py
  2. 1 1
      celery/worker/scheduler.py

+ 1 - 4
celery/worker/controllers.py

@@ -110,9 +110,6 @@ class ScheduleController(BackgroundThread):
     def on_iteration(self):
         """Wake-up scheduler"""
         delay = self._scheduler.next()
-        if delay is None:
-            delay = 1
-
         self.debug("ScheduleController: Scheduler wake-up"
                 "ScheduleController: Next wake-up eta %s seconds..." % delay)
-        time.sleep(delay)
+        time.sleep(delay or 1)

+ 1 - 1
celery/worker/scheduler.py

@@ -69,7 +69,7 @@ class Scheduler(object):
                         ready_queue.put(item)
                         if callback is not None:
                             callback()
-                        yield 0
+                        continue
                     else:
                         heapq.heappush(self._queue, event)
             yield None