Remix.run Logo
JakaJancar 5 hours ago

Assuming you're fine with keeping the queue in postgres, I've used Procrastinate and it's great:

https://procrastinate.readthedocs.io/en/stable/index.html

Core is not Django-specific, but it has an optional integration. Sync and async, retries/cancellation/etc., very extensible, and IMO super clean architecture and well tested.

IIRC think the codebase is like one-tenth that of Celery.

TkTech 5 hours ago | parent [-]

If you like Procastinate, you might like my Chancy, which is also built on postgres but with a goal of the most common bells and whistles being included.

Rate limiting, global uniqueness, timeouts, memory limits, mix asyncio/processes/threads/sub-interpreters in the same worker, workflows, cron jobs, dashboard, metrics, django integrations, repriotization, triggers, pruning, Windows support, queue tagging (ex: run this queue on all machines running windows with a GPU, run this one on workers with py3.14 and this one on workers with py3.11) etc etc...

https://tkte.ch/chancy/ & https://github.com/tktech/chancy

The pending v0.26 includes stabilizing of the HTTP API, dashboard improvements, workflow performance improvements for workflows with thousands of steps and django-tasks integration.