I need to build an app in Django that lets the user do some task everyday at the time they specify at runtime.
I have looked at Celery but couldn't find anything that will help. I found apply_async and I can get the task to execute once at the specificied duration but not recurrent. I am missing something but don't know what.
Please suggest how can I achieve this.
There is django-celery-beat
package which allows you to dynamicly add tasks to database and then they are executed as you defined in database.(e.g. every 5 minutes) But currently they have bug which causes that task is not appended to celery queue when added to database. One suggested workaround is to restart celery process every time that new task is added.
I solved it with Dan Baders schedule
package. I scheduled task on every minute which checks database for tasks that need to be executed in current minute. Then I start each of this tasks in new thread.
Hope this helps.
Advanced Python Scheduler might be a solution for you.
https://github.com/agronholm/apscheduler
https://apscheduler.readthedocs.io/en/latest/
APScheduler can dynamically add jobs.
You can look my github example: https://github.com/easytrader/Apscheduler_for_django/blob/master/trips/views.py
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With