你正在阅读 Celery 3.1 的文档。开发版本文档见: 此处.

celery.app.registry 源代码

# -*- coding: utf-8 -*-
"""
    celery.app.registry
    ~~~~~~~~~~~~~~~~~~~

    Registry of available tasks.

"""
from __future__ import absolute_import

import inspect

from celery.exceptions import NotRegistered


[文档]class TaskRegistry(dict): NotRegistered = NotRegistered def __missing__(self, key): raise self.NotRegistered(key)
[文档] def register(self, task): """Register a task in the task registry. The task will be automatically instantiated if not already an instance. """ self[task.name] = inspect.isclass(task) and task() or task
[文档] def unregister(self, name): """Unregister task by name. :param name: name of the task to unregister, or a :class:`celery.task.base.Task` with a valid `name` attribute. :raises celery.exceptions.NotRegistered: if the task has not been registered. """ try: self.pop(getattr(name, 'name', name)) except KeyError: raise self.NotRegistered(name) # -- these methods are irrelevant now and will be removed in 4.0
[文档] def regular(self): return self.filter_types('regular')
[文档] def periodic(self): return self.filter_types('periodic')
[文档] def filter_types(self, type): return dict((name, task) for name, task in self.iteritems() if getattr(task, 'type', 'regular') == type)
def _unpickle_task(name): from celery import current_app return current_app.tasks[name]