I built django-vtasks to replace Celery (task queue) in my open source project, GlitchTip. I wanted something with an asyncio-first approach that supports Valkey and Postgres backends. Sync tasks run in threads. We don't support every Celery broker and feature, but I think we have a good feature set and we outperform Celery in benchmarks. Being able to run my_task.aenqueue() is friendlier than doing this in Celery from an async view. It allows for a true asyncio valkey call, not sync_to_async. I found django-tasks not performant enough, as I need high concurrency. (As I understand, Django Tasks is modeled off of that project, so thank you to django-tasks folks). If this sounds useful, give it a try. Or better yet, submit a bug report or merge request.

you are viewing a single comment's thread
view the rest of the comments
[–] 1 point 5 months ago (1 child)

cool, does that mean it runs in the same event loop as the asgi server?

  • source
  • hideshow 2 child comments
  • [–] [S] 2 points 5 months ago*

    It can yes, but you may also run it as a separate process via a manage.py command. The scheduler will also work in either set up, and locks itself to running just once. So it's safe to scale any way want.

  • source
  • parent