[Solved]-How to programmatically generate celerybeat entries with celery and Django

6👍

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.

👤Dustin

1👍

I think what you want to do is add PeriodicTasks 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.

Leave a comment