django-tasks is an accepted Enhancement Proposal to bring background workers into Django itself (as django.tasks). Introducing both a common API contract for developers and library authors (eg django.core.cache), but also a production-grade ORM-based worker and queue.
I gave a talk at Djangocon Europe last month introducing it:
Now, I need your help testing it, finding the issues, and adding features. The aim is to get it merged into Django 5.2 (April 2025, but the merge deadline is December 2024), and thereās a lot still to do between now and then.
Give it a try, see how it works, and let me know what you think!
Hello! I saw your video and decided to come here to ask about it. Are you looking to eventually be able to interface with Celery or similar worker providers like RQ using the consistent django-tasks (or similarly named) API? I wasnāt exactly sure from the video whether thatās the ultimate goal is to interface with the existing systems or to simply replace most use-cases with a DB-backed system.
Iād like interops between existing implementations, yes. When and who writes them is still TBC. Thereās a Celery backend in progress.
These will absolutely be in Django core, as itās too much maintenance burden.
The DB backend will definitely be in Django core. Redis might come later to core, but thatās not my decision to make. django-tasks will likely live on to contain the components which donāt make sense in Django core, and as a testing ground before integrating.
The first PR, implementing the core API for background workers is up for review !
The notable omission is the database worker. This exists in django-tasks, but in the interest of easier review, isnāt in the first PR. Itāll come later, once the core is merged.