TasksLien vers cette rubrique
The Task framework provides the contract and plumbing for background work, not the engine that runs it. The Tasks API defines how work is described, queued, and tracked, but leaves actual execution to external infrastructure.
Task definitionLien vers cette rubrique
The task decoratorLien vers cette rubrique
- task(*, priority=0, queue_name='default', backend='default', takes_context=False, **kwargs)Lien vers cette définition
The
@taskdecorator defines aTaskinstance. All keyword arguments are passed directly to the backend’stask_class(which defaults toTask).The following standard arguments are supported:
priority: Sets thepriorityof theTask. Defaults to 0.queue_name: Sets thequeue_nameof theTask. Defaults to"default".backend: Sets thebackendof theTask. Defaults to"default".takes_context: contrôle si la fonctionTaskaccepte un objetTaskContext. VautFalsepar défaut. Voir Contexte des tâches pour plus de détails.
Custom Task backends may define a custom
task_classthat accepts additional arguments. These can be passed through the@taskdecorator:@task(foo=5, bar=600) def my_task(): passSi la tâche définie n’est pas valable selon le moteur, une exception
InvalidTaskest générée.Voir définition des tâches pour des exemples d’utilisation.
TaskLien vers cette rubrique
- class TaskLien vers cette définition
Représente une tâche à exécuter en arrière-plan. Les tâches doivent être définies par le décorateur func:task.
Les attributs de
Taskne peuvent pas être modifiés. Voir :ref:modification des tâches <modifying-tasks>` pour plus de détails.- priorityLien vers cette définition
La priorité de
Task. Les priorités doivent se situer entre -100 et 100, où un plus grand nombre signifie une priorité plus haute et va donc s’exécuter plus rapidement.Le moteur doit avoir l’attribut
supports_priorityàTruepour pouvoir utiliser cette fonctionnalité.
- backendLien vers cette définition
L’alias du moteur pour lequel la tâche
Taskdoit être placée en file d’attente. Cela doit correspondre à un moteur défini dansBACKEND.
- queue_nameLien vers cette définition
Le nom de la file d’attente à laquelle la tâche sera attribuée. Par défaut, c’est
"default". Cela doit correspondre à une file d’attente définie dansQUEUES, sauf siQUEUESest défini à[].
- run_afterLien vers cette définition
The earliest time the
Taskwill be executed. This can be atimedelta, which is used relative to the current time, a timezone-awaredatetime, orNoneif not constrained. Defaults toNone.This attribute can be set using
using().The backend must have
supports_deferset toTrueto use this feature. Otherwise,InvalidTaskis raised.
- nameLien vers cette définition
Le nom de la fonction décorée par
task(). Ce nom n’est pas forcément unique.
- using(*, priority=None, backend=None, queue_name=None, run_after=None)Lien vers cette définition
Crée une nouvelle
Taskavec des valeurs par défaut modifiées. La tâche existante n’est pas touchée.usingpermet de modifier les attributs suivants :Voir modification des tâches pour des exemples d’utilisation.
- enqueue(*args, **kwargs)Lien vers cette définition
Enqueues the
Taskto theTaskbackend for later execution.Arguments are passed to the
Task’s function after a round-trip through ajson.dumps()/json.loads()cycle. Hence, all arguments must be JSON-serializable and preserve their type after the round-trip.If the
Taskis not valid according to the backend,InvalidTaskis raised.See enqueueing Tasks for usage examples.
- aenqueue(*args, **kwargs)Lien vers cette définition
La variante
asyncdeenqueue.
- get_result(result_id)Lien vers cette définition
Récupère un résultat à partir de son id.
If the result does not exist,
TaskResultDoesNotExistis raised. If the result is not the same type as the current Task,TaskResultMismatchis raised. If the backend does not supportget_result(),NotImplementedErroris raised.
- aget_result(*args, **kwargs)Lien vers cette définition
La variante
asyncdeget_result.
Contexte des tâchesLien vers cette rubrique
- class TaskContextLien vers cette définition
Contains context for the running
Task. Context only passed to aTaskif it was defined withtakes_context=True.Attributes of
TaskContextcannot be modified.- task_resultLien vers cette définition
The
TaskResultcurrently being run.
- attemptLien vers cette définition
The number of the current execution attempts for this Task, starting at 1.
Résultats des tâchesLien vers cette rubrique
- class TaskResultStatusLien vers cette définition
An Enum representing the status of a
TaskResult.- READYLien vers cette définition
The
Taskhas just been enqueued, or is ready to be executed again.
- RUNNINGLien vers cette définition
The
Taskis currently being executed.
- FAILEDLien vers cette définition
The
Taskraised an exception during execution, or was unable to start.
- SUCCESSFULLien vers cette définition
The
Taskhas finished executing successfully.
- class TaskResultLien vers cette définition
The
TaskResultstores the information about a specific execution of aTask.Attributes of
TaskResultcannot be modified.- taskLien vers cette définition
The
Taskthe result was enqueued for.
- idLien vers cette définition
A unique identifier for the result, which can be passed to
Task.get_result().The format of the id will depend on the backend being used. Task result ids are always strings less than 64 characters.
See Task results for more details.
- statusLien vers cette définition
The
statusof the result.
- enqueued_atLien vers cette définition
The time when the
Taskwas enqueued.
- started_atLien vers cette définition
The time when the
Taskbegan execution, on its first attempt.
- last_attempted_atLien vers cette définition
The time when the most recent
Taskrun began execution.
- finished_atLien vers cette définition
The time when the
Taskfinished execution, whether it failed or succeeded.
- backendLien vers cette définition
The backend the result is from.
- errorsLien vers cette définition
A list of
TaskErrorinstances for the errors raised as part of each execution of the Task.
- return_valueLien vers cette définition
The return value from the
Taskfunction.If the
Taskdid not finish successfully,ValueErroris raised.See return values for usage examples.
- refresh()Lien vers cette définition
Refresh the result’s attributes from the queue store.
- arefresh()Lien vers cette définition
The
asyncvariant ofTaskResult.refresh().
- is_finishedLien vers cette définition
Whether the
Taskhas finished (successfully or not).
- attemptsLien vers cette définition
The number of times the Task has been run.
If the task is currently running, it does not count as an attempt.
- worker_idsLien vers cette définition
The ids of the workers which have executed the Task.
Erreurs des tâchesLien vers cette rubrique
- class TaskErrorLien vers cette définition
Contient des informations au sujet de l’erreur générée durant l’exécution de la tâche.
- tracebackLien vers cette définition
La trace d’erreur (sous forme de chaîne) de l’exception générée lorsque la tâche a échoué.
- exception_classLien vers cette définition
La classe d’exception générée lors de l’exécution de la tâche.
BackendsLien vers cette rubrique
Backends handle how Tasks are stored and executed. All backends share a common
interface defined by BaseTaskBackend, which specifies the core methods for
enqueueing Tasks and retrieving results.
Base backendLien vers cette rubrique
- class BaseTaskBackendLien vers cette définition
BaseTaskBackendis the parent class for all Task backends.- task_classLien vers cette définition
The
Tasksubclass to use when creating tasks with thetask()decorator. Defaults toTask. Custom backends can override this to use a customTasksubclass with additional attributes.
- optionsLien vers cette définition
A dictionary of extra parameters for the Task backend. These are provided using the
OPTIONSsetting.
- enqueue(task, args, kwargs)Lien vers cette définition
Task backends which subclass
BaseTaskBackendshould implement this method as a minimum.When implemented,
enqueue()enqueues thetask, aTaskinstance, for later execution.argsare the positional arguments andkwargsare the keyword arguments to be passed to thetask. Returns aTaskResult.
- aenqueue(task, args, kwargs)Lien vers cette définition
The
asyncvariant ofBaseTaskBackend.enqueue().
- get_result(result_id)Lien vers cette définition
Retrieve a result by its id. If the result does not exist,
TaskResultDoesNotExistis raised.If the backend does not support
get_result(),NotImplementedErroris raised.
- aget_result(result_id)Lien vers cette définition
The
asyncvariant ofBaseTaskBackend.get_result().
- validate_task(task)Lien vers cette définition
Validates whether the provided
Taskis able to be enqueued using the backend. If the Task is not valid,InvalidTaskis raised.
Feature flagsLien vers cette rubrique
Some backends may not support all features Django provides. It’s possible to identify the supported functionality of a backend, and potentially change behavior accordingly.
- BaseTaskBackend.supports_deferLien vers cette définition
Whether the backend supports enqueueing Tasks to be executed after a specific time using the
run_afterattribute.
- BaseTaskBackend.supports_async_taskLien vers cette définition
Whether the backend supports enqueueing async functions (coroutines).
- BaseTaskBackend.supports_get_resultLien vers cette définition
Whether the backend supports retrieving
Taskresults from another thread after they have been enqueued.
- BaseTaskBackend.supports_priorityLien vers cette définition
Whether the backend supports executing Tasks as ordered by their
priority.
The below table notes which of the built-in backends support which features:
Available backendsLien vers cette rubrique
Django includes only development and testing backends. These support local execution and inspection, for production ready backends refer to Configuration d’un moteur de tâches.
Immediate backendLien vers cette rubrique
- class ImmediateBackendLien vers cette définition
The immediate backend executes Tasks immediately, rather than in the background.
Le moteur bidonLien vers cette rubrique
- class DummyBackendLien vers cette définition
The dummy backend does not execute enqueued Tasks. Instead, it stores task results for later inspection.
- resultsLien vers cette définition
A list of results for the enqueued Tasks, in the order they were enqueued.
- clear()Lien vers cette définition
Clears the list of stored results.
ExceptionsLien vers cette rubrique
- exception InvalidTaskLien vers cette définition
Raised when the
Taskattempting to be enqueued is invalid.
- exception InvalidTaskBackendLien vers cette définition
Raised when the requested
BaseTaskBackendis invalid.
- exception TaskResultDoesNotExistLien vers cette définition
Raised by
get_result()when the providedresult_iddoes not exist.
- exception TaskResultMismatchLien vers cette définition
Raised by
get_result()when the providedresult_idis for a different Task than the current Task.
Notes de bas de page