0

I'm looking into Celerybeat for launching tasks that are scheduled at various times based upon a database:

e.g.

Task A fires at 12:00pm
Task B fires at 12:05pm

There could be many many tasks that fire at the same time.

I was thinking I would have Celerybeat fire off every minute to collect all the tasks for a particular minute and fire them off.

But I also want to be able to make sure I don't miss any tasks if Celerybeat goes down, and I don't want to repeat any tasks.

Because of the state machine I'm seeing this requiring for each task instance, I'm feeling like there's a much easier way to do this.

Or, is the best practice really to create a log for each task instance being fired and put it in multiple states: "not processed", "processing", "done", "error..." etc?

Thanks!

iJames
  • 640
  • 1
  • 7
  • 16
  • I found this which aligns with my question. http://stackoverflow.com/questions/17098377/replacing-celerybeat-with-chronos?lq=1 – iJames Dec 23 '14 at 22:01
  • I think that Advanced Python Scheduler might be the answer instead of Celery. http://apscheduler.readthedocs.org/en/3.0/index.html I'm able to add and remove tasks which are permanently stored in a database and will recover from missed tasks automatically, even coalescing them if there were multiple firings missed. – iJames Dec 24 '14 at 19:01

0 Answers0