Browse Source

Add some comments

Ask Solem 15 years ago
parent
commit
951ef735af
1 changed files with 19 additions and 15 deletions
  1. 19 15
      celery/buckets.py

+ 19 - 15
celery/buckets.py

@@ -73,35 +73,39 @@ class TaskBucket(object):
     put_nowait = put
     put_nowait = put
 
 
     def _get(self):
     def _get(self):
-        # If the first queue is always returning items, we would never
-        # get to fetching items from the other queues.
-        # So we always iterate over all the queues and put any ready
-        # items on a queue called "immediate". This queue is always checked
-        # for cached items first.
+        # If the first bucket is always returning items, we would never
+        # get to fetch items from the other buckets. So we always iterate over
+        # all the buckets and put any ready items into a queue called
+        # "immediate". This queue is always checked for cached items first.
         if self.immediate:
         if self.immediate:
             try:
             try:
                 return 0, self.immediate.get_nowait()
                 return 0, self.immediate.get_nowait()
             except QueueEmpty:
             except QueueEmpty:
                 pass
                 pass
 
 
-        remainding_times = []
-
+        remaining_times = []
         for bucket in self.buckets.values():
         for bucket in self.buckets.values():
-            remainding = bucket.expected_time()
-            if not remainding:
+            remaining = bucket.expected_time()
+            if not remaining:
                 try:
                 try:
+                    # Just put any ready items into the immediate queue.
                     self.immediate.put_nowait(bucket.get_nowait())
                     self.immediate.put_nowait(bucket.get_nowait())
                 except QueueEmpty:
                 except QueueEmpty:
                     pass
                     pass
             else:
             else:
-                remainding_times.append(remainding)
+                remaining_times.append(remaining)
 
 
+        # Try the immediate queue again.
         try:
         try:
             return 0, self.immediate.get_nowait()
             return 0, self.immediate.get_nowait()
         except QueueEmpty:
         except QueueEmpty:
-            if not remainding_times:
+            if not remaining_times:
+                # No items in any of the buckets.
                 raise
                 raise
-            return min(remainding_times), None
+
+            # There's items, but have to wait before we can retrieve them,
+            # return the shortest remaining time.
+            return min(remaining_times), None
 
 
     def get(self, block=True, 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.
@@ -114,11 +118,11 @@ class TaskBucket(object):
         did_timeout = lambda: timeout and time.time() - time_start > timeout
         did_timeout = lambda: timeout and time.time() - time_start > timeout
 
 
         while True:
         while True:
-            remainding_time, item = self._get()
-            if remainding_time:
+            remaining_time, item = self._get()
+            if remaining_time:
                 if not block or did_timeout():
                 if not block or did_timeout():
                     raise QueueEmpty
                     raise QueueEmpty
-                time.sleep(remainding_time)
+                time.sleep(remaining_time)
             else:
             else:
                 return item
                 return item