Ask Solem преди 13 години
родител
ревизия
67f995d4c9
променени са 3 файла, в които са добавени 34 реда и са изтрити 7 реда
  1. 34 4
      celery/app/task/builtins.py
  2. 0 2
      celery/task/chords.py
  3. 0 1
      celery/tests/test_app/test_loaders.py

+ 34 - 4
celery/app/task/builtins.py

@@ -3,17 +3,42 @@ from __future__ import absolute_import
 
 from ...utils import uuid
 
+#: global list of functions defining a built-in task.
+#: these are called for every app instance to setup built-in task.
 _builtins = []
 
 
 def builtin_task(constructor):
+    """Decorator that specifies that the decorated function is a function
+    that generates a built-in task.
+
+    The function will then be called for every new app instance created
+    (lazily, so more exactly when the task registry for that app is needed).
+    """
     _builtins.append(constructor)
     return constructor
 
 
+def load_builtins(app):
+    """Loads the built-in tasks for an app instance."""
+    for constructor in _builtins:
+        constructor(app)
+
+
 @builtin_task
 def add_backend_cleanup_task(app):
+    """The backend cleanup task can be used to clean up the default result
+    backend.
+
+    This task is also added do the periodic task schedule so that it is
+    run every day at midnight, but :program:`celerybeat` must be running
+    for this to be effective.
 
+    Note that not all backends do anything for this, what needs to be
+    done at cleanup is up to each backend, and some backends
+    may even clean up in realtime so that a periodic cleanup is not necessary.
+
+    """
     @app.task(name="celery.backend_cleanup")
     def backend_cleanup():
         app.backend.cleanup()
@@ -23,6 +48,12 @@ def add_backend_cleanup_task(app):
 
 @builtin_task
 def add_unlock_chord_task(app):
+    """The unlock chord task is used by result backends that doesn't
+    have native chord support.
+
+    It creates a task chain polling the header for completion.
+
+    """
 
     @app.task(name="celery.chord_unlock", max_retries=None)
     def unlock_chord(setid, callback, interval=1, propagate=False,
@@ -42,6 +73,9 @@ def add_unlock_chord_task(app):
 
 @builtin_task
 def add_chord_task(app):
+    """Every chord is executed in a dedicated task, so that the chord
+    can be used as a subtask, and this generates the task
+    responsible for that."""
 
     @app.task(name="celery.chord", accept_magic_kwargs=False)
     def chord(set, body, interval=1, max_retries=None,
@@ -64,7 +98,3 @@ def add_chord_task(app):
         return set.apply_async(taskset_id=setid)
 
     return chord
-
-def load_builtins(app):
-    for constructor in _builtins:
-        constructor(app)

+ 0 - 2
celery/task/chords.py

@@ -14,8 +14,6 @@ from __future__ import absolute_import
 from .. import current_app
 from ..utils import uuid
 
-from .sets import TaskSet
-
 
 class chord(object):
     Chord = None

+ 0 - 1
celery/tests/test_app/test_loaders.py

@@ -4,7 +4,6 @@ from __future__ import with_statement
 import os
 import sys
 
-from celery import task
 from celery import loaders
 from celery.app import app_or_default
 from celery.exceptions import (