瀏覽代碼

Make sure keywords arguments are not in unicode for a revoke call.

rlotun 15 年之前
父節點
當前提交
c00eba3b1d
共有 2 個文件被更改,包括 4 次插入1 次删除
  1. 1 1
      celery/worker/__init__.py
  2. 3 0
      celery/worker/control.py

+ 1 - 1
celery/worker/__init__.py

@@ -132,7 +132,7 @@ class WorkController(object):
             self.ready_queue = Queue()
         else:
             self.ready_queue = TaskBucket(task_registry=registry.tasks)
-        self.eta_schedule = Scheduler(self.ready_queue)
+        self.eta_schedule = Scheduler(self.ready_queue, logger=self.logger)
 
         self.logger.debug("Instantiating thread components...")
 

+ 3 - 0
celery/worker/control.py

@@ -120,4 +120,7 @@ class ControlDispatch(object):
         if control is None or not control.exposed:
             self.logger.error("No such control command: %s" % command)
         else:
+            # need to make sure keyword arguments are not in unicode
+            # this should be fixed in newer Python's (see: http://bugs.python.org/issue4978)
+            kwargs = dict((k.encode('utf8'), v.encode('utf8')) for (k, v) in kwargs.iteritems())
             return control(**kwargs)