diff --git a/django/tasks/task.py b/django/tasks/task.py index 6ffd7101a5..f13837472e 100644 --- a/django/tasks/task.py +++ b/django/tasks/task.py @@ -1,12 +1,11 @@ from dataclasses import dataclass, field, replace -from datetime import datetime, timedelta +from datetime import datetime from inspect import iscoroutinefunction from typing import Any, Callable, Dict, Optional, Type from asgiref.sync import async_to_sync, sync_to_async from django.db.models.enums import TextChoices -from django.utils import timezone from django.utils.translation import gettext_lazy as _ from .exceptions import ResultDoesNotExist @@ -88,10 +87,7 @@ class Task: if queue_name is not None: changes["queue_name"] = queue_name if run_after is not None: - if isinstance(run_after, timedelta): - changes["run_after"] = timezone.now() + run_after - else: - changes["run_after"] = run_after + changes["run_after"] = run_after if backend is not None: changes["backend"] = backend diff --git a/docs/ref/tasks.txt b/docs/ref/tasks.txt index a6e1cd16bd..4dd0ae9dc9 100644 --- a/docs/ref/tasks.txt +++ b/docs/ref/tasks.txt @@ -85,10 +85,6 @@ Attributes of ``Task`` cannot be modified. * :attr:`queue_name ` * :attr:`run_after ` - ``run_after`` may also be provided as a :class:`timedelta `, - which is used relative to the current time (when ``using`` is called), or a - timezone-aware :class:`datetime `. - .. method:: Task.enqueue(*args, **kwargs) Enqueue the task for later execution. diff --git a/tests/tasks/test_tasks.py b/tests/tasks/test_tasks.py index 9f22d77c4d..2e0ebb9fc5 100644 --- a/tests/tasks/test_tasks.py +++ b/tests/tasks/test_tasks.py @@ -1,5 +1,5 @@ import dataclasses -from datetime import datetime, timedelta +from datetime import datetime from django.tasks import ( DEFAULT_QUEUE_NAME, @@ -97,10 +97,6 @@ class TaskTestCase(SimpleTestCase): self.assertIsNone(test_tasks.noop_task.run_after) self.assertEqual(test_tasks.noop_task.using(run_after=now).run_after, now) - self.assertIsInstance( - test_tasks.noop_task.using(run_after=timedelta(hours=1)).run_after, - datetime, - ) self.assertIsNone(test_tasks.noop_task.run_after) def test_using_unknown_backend(self):