Просмотр исходного кода

Add a block=True argument to TaskBucket.get and add TaskBucket.get_nowait

Ask Solem 16 лет назад
Родитель
Сommit
6f069dde0a
1 измененных файлов с 5 добавлено и 3 удалено
  1. 5 3
      celery/buckets.py

+ 5 - 3
celery/buckets.py

@@ -102,7 +102,7 @@ class TaskBucket(object):
                 raise
                 raise
             return min(remainding_times), None
             return min(remainding_times), None
 
 
-    def get(self, timeout=None):
+    def get(self, block=True, timeout=None):
         """Retrive the task from the first available bucket.
         """Retrive the task from the first available bucket.
 
 
         Available as in, there is an item in the queue and you can
         Available as in, there is an item in the queue and you can
@@ -115,12 +115,14 @@ class TaskBucket(object):
         while True:
         while True:
             remainding_time, item = self._get()
             remainding_time, item = self._get()
             if remainding_time:
             if remainding_time:
-                if did_timeout():
+                if not block or did_timeout():
                     raise QueueEmpty
                     raise QueueEmpty
                 time.sleep(remainding_time)
                 time.sleep(remainding_time)
             else:
             else:
                 return item
                 return item
-    get_nowait = get
+
+    def get_nowait(self):
+        return self.get(block=False)
 
 
     def __old_get(self, block=True, timeout=None):
     def __old_get(self, block=True, timeout=None):
         time_spent = 0
         time_spent = 0