فهرست منبع

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