I am hoping to be able to programmatically generate celerybeat entries and resync celerybeat when entries are added. The docs here state
By default the
I think what you want to do is add PeriodicTask
s to the database. Looks like the bottom section of https://github.com/ask/django-celery/blob/master/djcelery/admin.py is how they add in tasks in the admin -- you'll need to offer something similar on the front end.
This is what ended up working for me :
def addTask(request):
intervalSchedule = IntervalSchedule.from_schedule(schedule(timedelta(seconds=10)))
intervalSchedule.save()
modelData = dict(
name="dcTestPersist",
task="technologytrackerapi.tasks.createRecord",
interval_id=intervalSchedule.pk,
)
periodicTask = PeriodicTask(**modelData)
periodicTask.save()
me = ModelEntry(periodicTask)
try:
me.save()
except:
from django.db import connection
print connection.queries
raise
return render_to_response('taskView.html')
I had to wrap the Periodic Task in a ModelEntry.