浏览代码

AsyncTaskBucket: Support changing limits at runtime

Ask Solem 12 年之前
父节点
当前提交
a5c73c8650
共有 1 个文件被更改,包括 7 次插入3 次删除
  1. 7 3
      celery/worker/buckets.py

+ 7 - 3
celery/worker/buckets.py

@@ -38,9 +38,7 @@ class AsyncTaskBucket(object):
         self.callback = callback
         self.callback = callback
         self.worker = worker
         self.worker = worker
         self.buckets = {}
         self.buckets = {}
-
-        for name in self.task_registry.iterkeys():
-            self.add_task_type(name)
+        self.refresh()
 
 
     def cont(self, request, bucket, tokens):
     def cont(self, request, bucket, tokens):
         if not bucket.can_consume(tokens):
         if not bucket.can_consume(tokens):
@@ -70,8 +68,14 @@ class AsyncTaskBucket(object):
         return bucket
         return bucket
 
 
     def clear(self):
     def clear(self):
+        # called by the worker when the connection is lost,
+        # but this also clears out the timer so we be good.
         pass
         pass
 
 
+    def refresh(self):
+        for name in self.task_registry:
+            self.add_task_type(name)
+
 
 
 class TaskBucket(object):
 class TaskBucket(object):
     """This is a collection of token buckets, each task type having
     """This is a collection of token buckets, each task type having