What scheduling package choose for Django 4.2

Hi, I have an app running Django 4.2. The app has users and tasks that need to be run periodically or/and on particular date-time. Lets say, for one user the task needs to be run every 12 hours, for another user - every 24 hours at 6:00 am, for another user - every Monday at any time.

I need a package with ability to run tasks as I described above and Django admin integration, I have Redis, if needed. I’m new to scheduling, so I need something light.

I’ve found a lot of packages and I’m confused which one to choose:

  1. django-apscheduler
  2. Advanced Python Scheduler
  3. django_dramatiq
  4. Django Q2
  5. Huey
  6. django-rq
  7. Celery

We use Celery Beat for that purpose. It has a very flexible scheduler and can be adminstrated through the admin.

Thank you. I’ll give it a try.

Based on your requirements, it seems like django-apscheduler or Huey could be good options for you. Both are lightweight and have simple interfaces for scheduling tasks. django-apscheduler integrates with the Django admin, while Huey supports scheduling tasks using a simple interface.

If you need to scale horizontally, then django_dramatiq or Django Q2 could be good options as they support distributed task processing. If you need more advanced features, such as retrying failed tasks or chaining tasks, then Celery might be a better fit

1 Like