Quellcode durchsuchen

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

Ask Solem vor 15 Jahren
Ursprung
Commit
1f1ffffc59
1 geänderte Dateien mit 6 neuen und 1 gelöschten Zeilen
  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):