Pārlūkot izejas kodu

TaskBucket buckets can be either Queue or TokenBucketQueue, so clear accordingly.

Ask Solem 15 gadi atpakaļ
vecāks
revīzija
1f1ffffc59
1 mainītis faili ar 6 papildinājumiem un 1 dzēšanām
  1. 6 1
      celery/worker/buckets.py

+ 6 - 1
celery/worker/buckets.py

@@ -171,7 +171,12 @@ class TaskBucket(object):
 
     def clear(self):
         for bucket in self.buckets.values():
-            bucket.queue.clear()
+            try:
+                bucket.clear()
+            except AttributeError:
+                # Probably a Queue, not a TokenBucketQueue. Clear the underlying
+                # deque instead.
+                bucket.queue.clear()
 
 
 class TokenBucketQueue(object):