Skip to content

Latest commit

 

History

History
71 lines (52 loc) · 2.14 KB

README.md

File metadata and controls

71 lines (52 loc) · 2.14 KB

Django Future Tasks

PyPI version Run linter and tests Codecov

A library to create periodic, cron-like tasks or single tasks with a specified execution/start time and schedule it to run in the future.

Installation

  1. Install using pip:
pip install django-future-tasks
  1. Add the library to your INSTALLED_APPS list.
INSTALLED_APPS = [
    ...
    'django_future_tasks',
    ...
]
  1. Configure the task types in your settings.py according to your needs:
# within settings.py

FUTURE_TASK_TYPE_ONE = "task_one"
FUTURE_TASK_TYPE_TWO = "task_two"

FUTURE_TASK_TYPES = (
    (FUTURE_TASK_TYPE_ONE, _("Task 1")),
    (FUTURE_TASK_TYPE_TWO, _("Task 2")),
)

Usage

To receive a signal, register a receiver function using the signal future_task_signal and the task type as sender. The instance is the FutureTask object.

@receiver(future_task_signal, sender=intern(settings.FUTURE_TASK_TYPE_ONE))
def my_function(sender, instance, **kwargs):
    # do something

Command for starting the future task processing

python manage.py process_future_tasks

Command for starting the periodic future task processing

python manage.py populate_periodic_future_tasks

Django Compatibility Matrix

If your project uses an older version of Django or Django Rest Framework, you can choose an older version of this project.

This Project Python Version Django Version
1.3.* 3.9, 3.10, 3.11, 3.12, 3.13 4.2, 5.0, 5.1
1.2.* 3.8, 3.9, 3.10, 3.11 3.2, 4.1, 4.2
1.1.* 3.8, 3.9, 3.10, 3.11 3.2, 4.1, 4.2
1.0.* 3.8, 3.9, 3.10, 3.11 3.2, 4.0, 4.1