|
@@ -1,9 +1,9 @@
|
|
|
# -*- coding: utf-8 -*-
|
|
|
"""
|
|
|
- celery.worker.control.builtins
|
|
|
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
+ celery.worker.control
|
|
|
+ ~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
- THis module contains the built-in remote control commands.
|
|
|
+ Remote control commands.
|
|
|
|
|
|
:copyright: (c) 2009 - 2011 by Ask Solem.
|
|
|
:license: BSD, see LICENSE for more details.
|
|
@@ -15,18 +15,27 @@ import sys
|
|
|
|
|
|
from datetime import datetime
|
|
|
|
|
|
-from ...platforms import signals as _signals
|
|
|
-from ...registry import tasks
|
|
|
-from ...utils import timeutils
|
|
|
-from ...utils.encoding import safe_repr
|
|
|
-from .. import state
|
|
|
-from ..state import revoked
|
|
|
+from ..platforms import signals as _signals
|
|
|
+from ..registry import tasks
|
|
|
+from ..utils import timeutils
|
|
|
+from ..utils.compat import UserDict
|
|
|
+from ..utils.encoding import safe_repr
|
|
|
|
|
|
-from .registry import Panel
|
|
|
+from . import state
|
|
|
+from .state import revoked
|
|
|
|
|
|
TASK_INFO_FIELDS = ("exchange", "routing_key", "rate_limit")
|
|
|
|
|
|
|
|
|
+class Panel(UserDict):
|
|
|
+ data = dict() # Global registry.
|
|
|
+
|
|
|
+ @classmethod
|
|
|
+ def register(cls, method, name=None):
|
|
|
+ cls.data[name or method.__name__] = method
|
|
|
+ return method
|
|
|
+
|
|
|
+
|
|
|
@Panel.register
|
|
|
def revoke(panel, task_id, terminate=False, signal=None, **kwargs):
|
|
|
"""Revoke task by task id."""
|