{"title":"Tasks","version":"6.0","locale":"fr","docname":"ref/tasks","url":"/fr/6.0/ref/tasks/","canonical":"https://djangodocs.dev/fr/6.0/ref/tasks/","summary":"New in Django 6.0 The Task framework provides the contract and plumbing for background work, not the engine that runs it. The Tasks API defines how work is…","html":"<h1>Tasks<a class=\"heading-anchor\" href=\"#tasks\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<aside class=\"version-note version-added\" data-version=\"6.0\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p id=\"module-django.tasks\">The Task framework provides the contract and plumbing for background work, not\nthe engine that runs it. The Tasks API defines how work is described, queued,\nand tracked, but leaves actual execution to external infrastructure.</p>\n<section id=\"task-definition\">\n<h2>Task definition<a class=\"heading-anchor\" href=\"#task-definition\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"the-task-decorator\">\n<h3>The <code class=\"docutils literal notranslate\"><span class=\"pre\">task</span></code> decorator<a class=\"heading-anchor\" href=\"#the-task-decorator\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py function\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.task\">\n<span class=\"sig-name descname\"><span class=\"pre\">task</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\"><span class=\"pre\">*</span></abbr></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">priority</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">0</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">queue_name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'default'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">backend</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'default'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">takes_context</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.tasks.task\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">&#64;task</span></code> decorator defines a <a class=\"reference internal\" href=\"#django.tasks.Task\" title=\"django.tasks.Task\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Task</span></code></a> instance. This has the\nfollowing optional arguments:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">priority</span></code>: Sets the <a class=\"reference internal\" href=\"#django.tasks.Task.priority\" title=\"django.tasks.Task.priority\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">priority</span></code></a> of the <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code>. Defaults\nto 0.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">queue_name</span></code>: Sets the <a class=\"reference internal\" href=\"#django.tasks.Task.queue_name\" title=\"django.tasks.Task.queue_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">queue_name</span></code></a> of the <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code>.\nDefaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;default&quot;</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">backend</span></code>: Sets the <a class=\"reference internal\" href=\"#django.tasks.Task.backend\" title=\"django.tasks.Task.backend\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">backend</span></code></a> of the <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code>. Defaults to\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;default&quot;</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">takes_context</span></code>: contrôle si la fonction <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> accepte un objet <a class=\"reference internal\" href=\"#django.tasks.TaskContext\" title=\"django.tasks.TaskContext\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TaskContext</span></code></a>. Vaut <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> par défaut. Voir <a class=\"reference internal\" href=\"/fr/6.0/topics/tasks/#task-context\"><span class=\"std std-ref\">Contexte des tâches</span></a> pour plus de détails.</p></li>\n</ul>\n<p>Si la tâche définie n’est pas valable selon le moteur, une exception <a class=\"reference internal\" href=\"#django.tasks.exceptions.InvalidTask\" title=\"django.tasks.exceptions.InvalidTask\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">InvalidTask</span></code></a> est générée.</p>\n<p>Voir <a class=\"reference internal\" href=\"/fr/6.0/topics/tasks/#defining-tasks\"><span class=\"std std-ref\">définition des tâches</span></a> pour des exemples d’utilisation.</p>\n</dd></dl>\n\n</section>\n<section id=\"task\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code><a class=\"heading-anchor\" href=\"#task\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.Task\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Task</span></span><a class=\"heading-anchor\" href=\"#django.tasks.Task\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Représente une tâche à exécuter en arrière-plan. Les tâches doivent être définies par le décorateur func:task.</p>\n<p>Les attributs de <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> ne peuvent pas être modifiés. Voir :ref:modification des tâches &lt;modifying-tasks&gt;` pour plus de détails.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.Task.priority\">\n<span class=\"sig-name descname\"><span class=\"pre\">priority</span></span><a class=\"heading-anchor\" href=\"#django.tasks.Task.priority\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>La priorité de <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code>. 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.</p>\n<p>Le moteur doit avoir l’attribut <a class=\"reference internal\" href=\"#django.tasks.backends.base.BaseTaskBackend.supports_priority\" title=\"django.tasks.backends.base.BaseTaskBackend.supports_priority\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">supports_priority</span></code></a> à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> pour pouvoir utiliser cette fonctionnalité.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.Task.backend\">\n<span class=\"sig-name descname\"><span class=\"pre\">backend</span></span><a class=\"heading-anchor\" href=\"#django.tasks.Task.backend\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>L’alias du moteur pour lequel la tâche <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> doit être placée en file d’attente. Cela doit correspondre à un moteur défini dans <a class=\"reference internal\" href=\"/fr/6.0/ref/settings/#std-setting-TASKS-BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">BACKEND</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.Task.queue_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">queue_name</span></span><a class=\"heading-anchor\" href=\"#django.tasks.Task.queue_name\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Le nom de la file d’attente à laquelle la tâche sera attribuée. Par défaut, c’est <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;default&quot;</span></code>. Cela doit correspondre à une file d’attente définie dans <a class=\"reference internal\" href=\"/fr/6.0/ref/settings/#std-setting-TASKS-QUEUES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">QUEUES</span></code></a>, sauf si <a class=\"reference internal\" href=\"/fr/6.0/ref/settings/#std-setting-TASKS-QUEUES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">QUEUES</span></code></a> est défini à <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.Task.run_after\">\n<span class=\"sig-name descname\"><span class=\"pre\">run_after</span></span><a class=\"heading-anchor\" href=\"#django.tasks.Task.run_after\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The earliest time the <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> will be executed. This can be a\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.timedelta\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">timedelta</span></code></a>, which is used relative to the\ncurrent time, a timezone-aware <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime</span></code></a>,\nor <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> if not constrained. Defaults to <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>.</p>\n<p>The backend must have <a class=\"reference internal\" href=\"#django.tasks.backends.base.BaseTaskBackend.supports_defer\" title=\"django.tasks.backends.base.BaseTaskBackend.supports_defer\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">supports_defer</span></code></a> set to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> to use\nthis feature. Otherwise,\n<a class=\"reference internal\" href=\"#django.tasks.exceptions.InvalidTask\" title=\"django.tasks.exceptions.InvalidTask\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">InvalidTask</span></code></a> is raised.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.Task.name\">\n<span class=\"sig-name descname\"><span class=\"pre\">name</span></span><a class=\"heading-anchor\" href=\"#django.tasks.Task.name\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Le nom de la fonction décorée par <a class=\"reference internal\" href=\"#django.tasks.task\" title=\"django.tasks.task\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">task()</span></code></a>. Ce nom n’est pas forcément unique.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.Task.using\">\n<span class=\"sig-name descname\"><span class=\"pre\">using</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\"><span class=\"pre\">*</span></abbr></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">priority</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">backend</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">queue_name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">run_after</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.tasks.Task.using\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Crée une nouvelle <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> avec des valeurs par défaut modifiées. La tâche existante n’est pas touchée.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">using</span></code> permet de modifier les attributs suivants :</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"#django.tasks.Task.priority\" title=\"django.tasks.Task.priority\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">priority</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.tasks.Task.backend\" title=\"django.tasks.Task.backend\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">backend</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.tasks.Task.queue_name\" title=\"django.tasks.Task.queue_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">queue_name</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.tasks.Task.run_after\" title=\"django.tasks.Task.run_after\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">run_after</span></code></a></p></li>\n</ul>\n<p>Voir <a class=\"reference internal\" href=\"/fr/6.0/topics/tasks/#modifying-tasks\"><span class=\"std std-ref\">modification des tâches</span></a> pour des exemples d’utilisation.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.Task.enqueue\">\n<span class=\"sig-name descname\"><span class=\"pre\">enqueue</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.tasks.Task.enqueue\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Enqueues the <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> to the <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> backend for later execution.</p>\n<p>Arguments are passed to the <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code>’s function after a round-trip\nthrough a <a class=\"reference external\" href=\"https://docs.python.org/3/library/json.html#json.dumps\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">json.dumps()</span></code></a>/<a class=\"reference external\" href=\"https://docs.python.org/3/library/json.html#json.loads\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">json.loads()</span></code></a> cycle. Hence, all\narguments must be JSON-serializable and preserve their type after the\nround-trip.</p>\n<p>If the <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> is not valid according to the backend,\n<a class=\"reference internal\" href=\"#django.tasks.exceptions.InvalidTask\" title=\"django.tasks.exceptions.InvalidTask\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">InvalidTask</span></code></a> is raised.</p>\n<p>See <a class=\"reference internal\" href=\"/fr/6.0/topics/tasks/#enqueueing-tasks\"><span class=\"std std-ref\">enqueueing Tasks</span></a> for usage examples.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.Task.aenqueue\">\n<span class=\"sig-name descname\"><span class=\"pre\">aenqueue</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.tasks.Task.aenqueue\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>La variante <code class=\"docutils literal notranslate\"><span class=\"pre\">async</span></code> de <a class=\"reference internal\" href=\"#django.tasks.Task.enqueue\" title=\"django.tasks.Task.enqueue\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">enqueue</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.Task.get_result\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_result</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">result_id</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.tasks.Task.get_result\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Récupère un résultat à partir de son id.</p>\n<p>If the result does not exist, <a class=\"reference internal\" href=\"#django.tasks.exceptions.TaskResultDoesNotExist\" title=\"django.tasks.exceptions.TaskResultDoesNotExist\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">TaskResultDoesNotExist</span></code></a> is raised. If the\nresult is not the same type as the current Task,\n<a class=\"reference internal\" href=\"#django.tasks.exceptions.TaskResultMismatch\" title=\"django.tasks.exceptions.TaskResultMismatch\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">TaskResultMismatch</span></code></a>\nis raised. If the backend does not support <code class=\"docutils literal notranslate\"><span class=\"pre\">get_result()</span></code>,\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#NotImplementedError\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">NotImplementedError</span></code></a> is raised.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.Task.aget_result\">\n<span class=\"sig-name descname\"><span class=\"pre\">aget_result</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.tasks.Task.aget_result\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>La variante <code class=\"docutils literal notranslate\"><span class=\"pre\">async</span></code> de <a class=\"reference internal\" href=\"#django.tasks.Task.get_result\" title=\"django.tasks.Task.get_result\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_result</span></code></a>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n</section>\n<section id=\"task-context\">\n<h2>Contexte des tâches<a class=\"heading-anchor\" href=\"#task-context\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskContext\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TaskContext</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskContext\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Contains context for the running <a class=\"reference internal\" href=\"#django.tasks.Task\" title=\"django.tasks.Task\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Task</span></code></a>. Context only passed to a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> if it was defined with <code class=\"docutils literal notranslate\"><span class=\"pre\">takes_context=True</span></code>.</p>\n<p>Attributes of <code class=\"docutils literal notranslate\"><span class=\"pre\">TaskContext</span></code> cannot be modified.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskContext.task_result\">\n<span class=\"sig-name descname\"><span class=\"pre\">task_result</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskContext.task_result\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <a class=\"reference internal\" href=\"#django.tasks.TaskResult\" title=\"django.tasks.TaskResult\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TaskResult</span></code></a> currently being run.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskContext.attempt\">\n<span class=\"sig-name descname\"><span class=\"pre\">attempt</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskContext.attempt\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The number of the current execution attempts for this Task, starting at\n1.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"task-results\">\n<h2>Résultats des tâches<a class=\"heading-anchor\" href=\"#task-results\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResultStatus\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TaskResultStatus</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResultStatus\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>An Enum representing the status of a <a class=\"reference internal\" href=\"#django.tasks.TaskResult\" title=\"django.tasks.TaskResult\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TaskResult</span></code></a>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResultStatus.READY\">\n<span class=\"sig-name descname\"><span class=\"pre\">READY</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResultStatus.READY\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <a class=\"reference internal\" href=\"#django.tasks.Task\" title=\"django.tasks.Task\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Task</span></code></a> has just been enqueued, or is ready to be executed\nagain.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResultStatus.RUNNING\">\n<span class=\"sig-name descname\"><span class=\"pre\">RUNNING</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResultStatus.RUNNING\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <a class=\"reference internal\" href=\"#django.tasks.Task\" title=\"django.tasks.Task\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Task</span></code></a> is currently being executed.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResultStatus.FAILED\">\n<span class=\"sig-name descname\"><span class=\"pre\">FAILED</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResultStatus.FAILED\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <a class=\"reference internal\" href=\"#django.tasks.Task\" title=\"django.tasks.Task\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Task</span></code></a> raised an exception during execution, or was unable\nto start.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResultStatus.SUCCESSFUL\">\n<span class=\"sig-name descname\"><span class=\"pre\">SUCCESSFUL</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResultStatus.SUCCESSFUL\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <a class=\"reference internal\" href=\"#django.tasks.Task\" title=\"django.tasks.Task\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Task</span></code></a> has finished executing successfully.</p>\n</dd></dl>\n\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResult\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TaskResult</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResult\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">TaskResult</span></code> stores the information about a specific execution of a\n<a class=\"reference internal\" href=\"#django.tasks.Task\" title=\"django.tasks.Task\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Task</span></code></a>.</p>\n<p>Attributes of <code class=\"docutils literal notranslate\"><span class=\"pre\">TaskResult</span></code> cannot be modified.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResult.task\">\n<span class=\"sig-name descname\"><span class=\"pre\">task</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResult.task\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <a class=\"reference internal\" href=\"#django.tasks.Task\" title=\"django.tasks.Task\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Task</span></code></a> the result was enqueued for.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResult.id\">\n<span class=\"sig-name descname\"><span class=\"pre\">id</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResult.id\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A unique identifier for the result, which can be passed to\n<a class=\"reference internal\" href=\"#django.tasks.Task.get_result\" title=\"django.tasks.Task.get_result\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Task.get_result()</span></code></a>.</p>\n<p>The format of the id will depend on the backend being used. Task result\nids are always strings less than 64 characters.</p>\n<p>See <a class=\"reference internal\" href=\"/fr/6.0/topics/tasks/#task-results\"><span class=\"std std-ref\">Task results</span></a> for more details.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResult.status\">\n<span class=\"sig-name descname\"><span class=\"pre\">status</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResult.status\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <a class=\"reference internal\" href=\"#django.tasks.TaskResultStatus\" title=\"django.tasks.TaskResultStatus\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">status</span></code></a> of the result.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResult.enqueued_at\">\n<span class=\"sig-name descname\"><span class=\"pre\">enqueued_at</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResult.enqueued_at\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The time when the <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> was enqueued.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResult.started_at\">\n<span class=\"sig-name descname\"><span class=\"pre\">started_at</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResult.started_at\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The time when the <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> began execution, on its first attempt.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResult.last_attempted_at\">\n<span class=\"sig-name descname\"><span class=\"pre\">last_attempted_at</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResult.last_attempted_at\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The time when the most recent <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> run began execution.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResult.finished_at\">\n<span class=\"sig-name descname\"><span class=\"pre\">finished_at</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResult.finished_at\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The time when the <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> finished execution, whether it failed or\nsucceeded.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResult.backend\">\n<span class=\"sig-name descname\"><span class=\"pre\">backend</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResult.backend\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The backend the result is from.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResult.errors\">\n<span class=\"sig-name descname\"><span class=\"pre\">errors</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResult.errors\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A list of <a class=\"reference internal\" href=\"#django.tasks.TaskError\" title=\"django.tasks.TaskError\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TaskError</span></code></a> instances for the errors raised as part of\neach execution of the Task.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResult.return_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">return_value</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResult.return_value\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The return value from the <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> function.</p>\n<p>If the <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> did not finish successfully, <a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#ValueError\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">ValueError</span></code></a> is\nraised.</p>\n<p>See <a class=\"reference internal\" href=\"/fr/6.0/topics/tasks/#task-return-values\"><span class=\"std std-ref\">return values</span></a> for usage examples.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResult.refresh\">\n<span class=\"sig-name descname\"><span class=\"pre\">refresh</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResult.refresh\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Refresh the result’s attributes from the queue store.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResult.arefresh\">\n<span class=\"sig-name descname\"><span class=\"pre\">arefresh</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResult.arefresh\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">async</span></code> variant of <a class=\"reference internal\" href=\"#django.tasks.TaskResult.refresh\" title=\"django.tasks.TaskResult.refresh\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">TaskResult.refresh()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResult.is_finished\">\n<span class=\"sig-name descname\"><span class=\"pre\">is_finished</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResult.is_finished\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Whether the <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> has finished (successfully or not).</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResult.attempts\">\n<span class=\"sig-name descname\"><span class=\"pre\">attempts</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResult.attempts\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The number of times the Task has been run.</p>\n<p>If the task is currently running, it does not count as an attempt.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskResult.worker_ids\">\n<span class=\"sig-name descname\"><span class=\"pre\">worker_ids</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskResult.worker_ids\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The ids of the workers which have executed the Task.</p>\n</dd></dl>\n\n</dd></dl>\n\n<section id=\"task-errors\">\n<h3>Erreurs des tâches<a class=\"heading-anchor\" href=\"#task-errors\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskError\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TaskError</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskError\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Contient des informations au sujet de l’erreur générée durant l’exécution de la tâche.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskError.traceback\">\n<span class=\"sig-name descname\"><span class=\"pre\">traceback</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskError.traceback\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>La trace d’erreur (sous forme de chaîne) de l’exception générée lorsque la tâche a échoué.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.TaskError.exception_class\">\n<span class=\"sig-name descname\"><span class=\"pre\">exception_class</span></span><a class=\"heading-anchor\" href=\"#django.tasks.TaskError.exception_class\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>La classe d’exception générée lors de l’exécution de la tâche.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n</section>\n<section id=\"backends\">\n<h2>Backends<a class=\"heading-anchor\" href=\"#backends\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Backends handle how Tasks are stored and executed. All backends share a common\ninterface defined by <code class=\"docutils literal notranslate\"><span class=\"pre\">BaseTaskBackend</span></code>, which specifies the core methods for\nenqueueing Tasks and retrieving results.</p>\n<section id=\"module-django.tasks.backends.base\">\n<span id=\"base-backend\"></span><h3>Base backend<a class=\"heading-anchor\" href=\"#module-django.tasks.backends.base\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.backends.base.BaseTaskBackend\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BaseTaskBackend</span></span><a class=\"heading-anchor\" href=\"#django.tasks.backends.base.BaseTaskBackend\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><code class=\"docutils literal notranslate\"><span class=\"pre\">BaseTaskBackend</span></code> is the parent class for all Task backends.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.backends.base.BaseTaskBackend.options\">\n<span class=\"sig-name descname\"><span class=\"pre\">options</span></span><a class=\"heading-anchor\" href=\"#django.tasks.backends.base.BaseTaskBackend.options\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A dictionary of extra parameters for the Task backend. These are\nprovided using the <a class=\"reference internal\" href=\"/fr/6.0/ref/settings/#std-setting-TASKS-OPTIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code></a> setting.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.backends.base.BaseTaskBackend.enqueue\">\n<span class=\"sig-name descname\"><span class=\"pre\">enqueue</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">task</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.tasks.backends.base.BaseTaskBackend.enqueue\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Task backends which subclass <code class=\"docutils literal notranslate\"><span class=\"pre\">BaseTaskBackend</span></code> should implement this\nmethod as a minimum.</p>\n<p>When implemented, <code class=\"docutils literal notranslate\"><span class=\"pre\">enqueue()</span></code> enqueues the <code class=\"docutils literal notranslate\"><span class=\"pre\">task</span></code>, a <a class=\"reference internal\" href=\"#django.tasks.Task\" title=\"django.tasks.Task\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Task</span></code></a>\ninstance, for later execution. <code class=\"docutils literal notranslate\"><span class=\"pre\">args</span></code> are the positional arguments\nand <code class=\"docutils literal notranslate\"><span class=\"pre\">kwargs</span></code> are the keyword arguments to be passed to the <code class=\"docutils literal notranslate\"><span class=\"pre\">task</span></code>.\nReturns a <a class=\"reference internal\" href=\"#django.tasks.TaskResult\" title=\"django.tasks.TaskResult\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TaskResult</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.backends.base.BaseTaskBackend.aenqueue\">\n<span class=\"sig-name descname\"><span class=\"pre\">aenqueue</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">task</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">args</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.tasks.backends.base.BaseTaskBackend.aenqueue\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">async</span></code> variant of <a class=\"reference internal\" href=\"#django.tasks.backends.base.BaseTaskBackend.enqueue\" title=\"django.tasks.backends.base.BaseTaskBackend.enqueue\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">BaseTaskBackend.enqueue()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.backends.base.BaseTaskBackend.get_result\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_result</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">result_id</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.tasks.backends.base.BaseTaskBackend.get_result\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Retrieve a result by its id. If the result does not exist,\n<a class=\"reference internal\" href=\"#django.tasks.exceptions.TaskResultDoesNotExist\" title=\"django.tasks.exceptions.TaskResultDoesNotExist\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">TaskResultDoesNotExist</span></code></a> is raised.</p>\n<p>If the backend does not support <code class=\"docutils literal notranslate\"><span class=\"pre\">get_result()</span></code>,\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#NotImplementedError\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">NotImplementedError</span></code></a> is raised.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.backends.base.BaseTaskBackend.aget_result\">\n<span class=\"sig-name descname\"><span class=\"pre\">aget_result</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">result_id</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.tasks.backends.base.BaseTaskBackend.aget_result\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">async</span></code> variant of <a class=\"reference internal\" href=\"#django.tasks.backends.base.BaseTaskBackend.get_result\" title=\"django.tasks.backends.base.BaseTaskBackend.get_result\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">BaseTaskBackend.get_result()</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.backends.base.BaseTaskBackend.validate_task\">\n<span class=\"sig-name descname\"><span class=\"pre\">validate_task</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">task</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.tasks.backends.base.BaseTaskBackend.validate_task\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Validates whether the provided <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> is able to be enqueued using\nthe backend. If the Task is not valid,\n<a class=\"reference internal\" href=\"#django.tasks.exceptions.InvalidTask\" title=\"django.tasks.exceptions.InvalidTask\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">InvalidTask</span></code></a>\nis raised.</p>\n</dd></dl>\n\n</dd></dl>\n\n<section id=\"feature-flags\">\n<h4>Feature flags<a class=\"heading-anchor\" href=\"#feature-flags\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Some backends may not support all features Django provides. It’s possible to\nidentify the supported functionality of a backend, and potentially change\nbehavior accordingly.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.backends.base.BaseTaskBackend.supports_defer\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseTaskBackend.</span></span><span class=\"sig-name descname\"><span class=\"pre\">supports_defer</span></span><a class=\"heading-anchor\" href=\"#django.tasks.backends.base.BaseTaskBackend.supports_defer\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Whether the backend supports enqueueing Tasks to be executed after a\nspecific time using the <a class=\"reference internal\" href=\"#django.tasks.Task.run_after\" title=\"django.tasks.Task.run_after\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">run_after</span></code></a> attribute.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.backends.base.BaseTaskBackend.supports_async_task\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseTaskBackend.</span></span><span class=\"sig-name descname\"><span class=\"pre\">supports_async_task</span></span><a class=\"heading-anchor\" href=\"#django.tasks.backends.base.BaseTaskBackend.supports_async_task\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Whether the backend supports enqueueing async functions (coroutines).</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.backends.base.BaseTaskBackend.supports_get_result\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseTaskBackend.</span></span><span class=\"sig-name descname\"><span class=\"pre\">supports_get_result</span></span><a class=\"heading-anchor\" href=\"#django.tasks.backends.base.BaseTaskBackend.supports_get_result\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Whether the backend supports retrieving <code class=\"docutils literal notranslate\"><span class=\"pre\">Task</span></code> results from another\nthread after they have been enqueued.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.backends.base.BaseTaskBackend.supports_priority\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseTaskBackend.</span></span><span class=\"sig-name descname\"><span class=\"pre\">supports_priority</span></span><a class=\"heading-anchor\" href=\"#django.tasks.backends.base.BaseTaskBackend.supports_priority\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Whether the backend supports executing Tasks as ordered by their\n<a class=\"reference internal\" href=\"#django.tasks.Task.priority\" title=\"django.tasks.Task.priority\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">priority</span></code></a>.</p>\n</dd></dl>\n\n<p>The below table notes which of the <a class=\"reference internal\" href=\"#task-available-backends\"><span class=\"std std-ref\">built-in backends</span></a> support which features:</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Feature</p></th>\n<th class=\"head\"><p><a class=\"reference internal\" href=\"#django.tasks.backends.dummy.DummyBackend\" title=\"django.tasks.backends.dummy.DummyBackend\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DummyBackend</span></code></a></p></th>\n<th class=\"head\"><p><a class=\"reference internal\" href=\"#django.tasks.backends.immediate.ImmediateBackend\" title=\"django.tasks.backends.immediate.ImmediateBackend\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ImmediateBackend</span></code></a></p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><a class=\"reference internal\" href=\"#django.tasks.backends.base.BaseTaskBackend.supports_defer\" title=\"django.tasks.backends.base.BaseTaskBackend.supports_defer\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">supports_defer</span></code></a></p></td>\n<td><p>Oui</p></td>\n<td><p>Non</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><a class=\"reference internal\" href=\"#django.tasks.backends.base.BaseTaskBackend.supports_async_task\" title=\"django.tasks.backends.base.BaseTaskBackend.supports_async_task\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">supports_async_task</span></code></a></p></td>\n<td><p>Oui</p></td>\n<td><p>Oui</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><a class=\"reference internal\" href=\"#django.tasks.backends.base.BaseTaskBackend.supports_get_result\" title=\"django.tasks.backends.base.BaseTaskBackend.supports_get_result\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">supports_get_result</span></code></a></p></td>\n<td><p>Non</p></td>\n<td><p>No <a class=\"footnote-reference brackets\" href=\"#fnimmediateresult\" id=\"id1\" role=\"doc-noteref\"><span class=\"fn-bracket\">[</span>1<span class=\"fn-bracket\">]</span></a></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><a class=\"reference internal\" href=\"#django.tasks.backends.base.BaseTaskBackend.supports_priority\" title=\"django.tasks.backends.base.BaseTaskBackend.supports_priority\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">supports_priority</span></code></a></p></td>\n<td><p>Yes <a class=\"footnote-reference brackets\" href=\"#fndummypriority\" id=\"id2\" role=\"doc-noteref\"><span class=\"fn-bracket\">[</span>2<span class=\"fn-bracket\">]</span></a></p></td>\n<td><p>Yes <a class=\"footnote-reference brackets\" href=\"#fnimmediatepriority\" id=\"id3\" role=\"doc-noteref\"><span class=\"fn-bracket\">[</span>3<span class=\"fn-bracket\">]</span></a></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n</section>\n<section id=\"available-backends\">\n<span id=\"task-available-backends\"></span><h3>Available backends<a class=\"heading-anchor\" href=\"#available-backends\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Django includes only development and testing backends. These support local\nexecution and inspection, for production ready backends refer to\n<a class=\"reference internal\" href=\"/fr/6.0/topics/tasks/#configuring-a-task-backend\"><span class=\"std std-ref\">Configuration d’un moteur de tâches</span></a>.</p>\n<section id=\"module-django.tasks.backends.immediate\">\n<span id=\"immediate-backend\"></span><h4>Immediate backend<a class=\"heading-anchor\" href=\"#module-django.tasks.backends.immediate\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.backends.immediate.ImmediateBackend\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ImmediateBackend</span></span><a class=\"heading-anchor\" href=\"#django.tasks.backends.immediate.ImmediateBackend\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <a class=\"reference internal\" href=\"/fr/6.0/topics/tasks/#immediate-task-backend\"><span class=\"std std-ref\">immediate backend</span></a> executes Tasks\nimmediately, rather than in the background.</p>\n</dd></dl>\n\n</section>\n<section id=\"module-django.tasks.backends.dummy\">\n<span id=\"dummy-backend\"></span><h4>Le moteur bidon<a class=\"heading-anchor\" href=\"#module-django.tasks.backends.dummy\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.backends.dummy.DummyBackend\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">DummyBackend</span></span><a class=\"heading-anchor\" href=\"#django.tasks.backends.dummy.DummyBackend\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <a class=\"reference internal\" href=\"/fr/6.0/topics/tasks/#dummy-task-backend\"><span class=\"std std-ref\">dummy backend</span></a> does not execute enqueued\nTasks. Instead, it stores task results for later inspection.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.backends.dummy.DummyBackend.results\">\n<span class=\"sig-name descname\"><span class=\"pre\">results</span></span><a class=\"heading-anchor\" href=\"#django.tasks.backends.dummy.DummyBackend.results\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A list of results for the enqueued Tasks, in the order they were\nenqueued.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.backends.dummy.DummyBackend.clear\">\n<span class=\"sig-name descname\"><span class=\"pre\">clear</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.tasks.backends.dummy.DummyBackend.clear\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Clears the list of stored results.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n</section>\n</section>\n<section id=\"module-django.tasks.exceptions\">\n<span id=\"exceptions\"></span><h2>Exceptions<a class=\"heading-anchor\" href=\"#module-django.tasks.exceptions\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py exception\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.exceptions.InvalidTask\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">exception</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">InvalidTask</span></span><a class=\"heading-anchor\" href=\"#django.tasks.exceptions.InvalidTask\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Raised when the <a class=\"reference internal\" href=\"#django.tasks.Task\" title=\"django.tasks.Task\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Task</span></code></a> attempting to be enqueued\nis invalid.</p>\n</dd></dl>\n\n<dl class=\"py exception\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.exceptions.InvalidTaskBackend\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">exception</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">InvalidTaskBackend</span></span><a class=\"heading-anchor\" href=\"#django.tasks.exceptions.InvalidTaskBackend\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Raised when the requested <a class=\"reference internal\" href=\"#django.tasks.backends.base.BaseTaskBackend\" title=\"django.tasks.backends.base.BaseTaskBackend\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BaseTaskBackend</span></code></a> is invalid.</p>\n</dd></dl>\n\n<dl class=\"py exception\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.exceptions.TaskResultDoesNotExist\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">exception</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TaskResultDoesNotExist</span></span><a class=\"heading-anchor\" href=\"#django.tasks.exceptions.TaskResultDoesNotExist\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Raised by <a class=\"reference internal\" href=\"#django.tasks.backends.base.BaseTaskBackend.get_result\" title=\"django.tasks.backends.base.BaseTaskBackend.get_result\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_result()</span></code></a>\nwhen the provided <code class=\"docutils literal notranslate\"><span class=\"pre\">result_id</span></code> does not exist.</p>\n</dd></dl>\n\n<dl class=\"py exception\">\n<dt class=\"sig sig-object py\" id=\"django.tasks.exceptions.TaskResultMismatch\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">exception</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TaskResultMismatch</span></span><a class=\"heading-anchor\" href=\"#django.tasks.exceptions.TaskResultMismatch\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Raised by <a class=\"reference internal\" href=\"#django.tasks.Task.get_result\" title=\"django.tasks.Task.get_result\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_result()</span></code></a> when the provided\n<code class=\"docutils literal notranslate\"><span class=\"pre\">result_id</span></code> is for a different Task than the current Task.</p>\n</dd></dl>\n\n<p class=\"rubric\">Notes de bas de page</p>\n<aside class=\"footnote-list brackets\">\n<aside class=\"footnote brackets\" id=\"fnimmediateresult\" role=\"doc-footnote\">\n<span class=\"label\"><span class=\"fn-bracket\">[</span><a role=\"doc-backlink\" href=\"#id1\">1</a><span class=\"fn-bracket\">]</span></span>\n<p>The <a class=\"reference internal\" href=\"#django.tasks.backends.immediate.ImmediateBackend\" title=\"django.tasks.backends.immediate.ImmediateBackend\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ImmediateBackend</span></code></a> doesn’t officially\nsupport <code class=\"docutils literal notranslate\"><span class=\"pre\">get_result()</span></code>, despite implementing the API, since the result\ncannot be retrieved from a different thread.</p>\n</aside>\n<aside class=\"footnote brackets\" id=\"fndummypriority\" role=\"doc-footnote\">\n<span class=\"label\"><span class=\"fn-bracket\">[</span><a role=\"doc-backlink\" href=\"#id2\">2</a><span class=\"fn-bracket\">]</span></span>\n<p>The <a class=\"reference internal\" href=\"#django.tasks.backends.dummy.DummyBackend\" title=\"django.tasks.backends.dummy.DummyBackend\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DummyBackend</span></code></a> has <code class=\"docutils literal notranslate\"><span class=\"pre\">supports_priority=True</span></code>\nso that it can be used as a drop-in replacement in tests. Since this\nbackend never executes Tasks, the <code class=\"docutils literal notranslate\"><span class=\"pre\">priority</span></code> value has no effect.</p>\n</aside>\n<aside class=\"footnote brackets\" id=\"fnimmediatepriority\" role=\"doc-footnote\">\n<span class=\"label\"><span class=\"fn-bracket\">[</span><a role=\"doc-backlink\" href=\"#id3\">3</a><span class=\"fn-bracket\">]</span></span>\n<p>The <a class=\"reference internal\" href=\"#django.tasks.backends.immediate.ImmediateBackend\" title=\"django.tasks.backends.immediate.ImmediateBackend\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ImmediateBackend</span></code></a> has\n<code class=\"docutils literal notranslate\"><span class=\"pre\">supports_priority=True</span></code> so that it can be used as a drop-in replacement\nin tests. Because Tasks run as soon as they are scheduled, the <code class=\"docutils literal notranslate\"><span class=\"pre\">priority</span></code>\nvalue has no effect.</p>\n</aside>\n</aside>\n</section>","rootId":"tasks","toc":[{"title":"Task definition","anchor":"task-definition","children":[{"title":"The task decorator","anchor":"the-task-decorator","children":[]},{"title":"Task","anchor":"task","children":[]}]},{"title":"Contexte des tâches","anchor":"task-context","children":[]},{"title":"Résultats des tâches","anchor":"task-results","children":[{"title":"Erreurs des tâches","anchor":"task-errors","children":[]}]},{"title":"Backends","anchor":"backends","children":[{"title":"Base backend","anchor":"module-django.tasks.backends.base","children":[{"title":"Feature flags","anchor":"feature-flags","children":[]}]},{"title":"Available backends","anchor":"available-backends","children":[{"title":"Immediate backend","anchor":"module-django.tasks.backends.immediate","children":[]},{"title":"Le moteur bidon","anchor":"module-django.tasks.backends.dummy","children":[]}]}]},{"title":"Exceptions","anchor":"module-django.tasks.exceptions","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"Référence de l’API","url":"/fr/6.0/ref/"}],"prev":{"docname":"ref/signals","title":"Signaux","url":"/fr/6.0/ref/signals/"},"next":{"docname":"ref/templates/index","title":"Gabarits","url":"/fr/6.0/ref/templates/"},"formats":{"html":"/fr/6.0/ref/tasks/","markdown":"/fr/6.0/ref/tasks.md","json":"/fr/6.0/ref/tasks.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/ref/tasks.txt","official":"https://docs.djangoproject.com/fr/6.0/ref/tasks/","inVersions":["6.1","6.0"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}