How to programmatically generate celerybeat entries with celery and Django

前端 未结 2 2005
傲寒
傲寒 2021-02-01 09:17

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

相关标签:
2条回答
  • 2021-02-01 09:30

    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.

    0 讨论(0)
  • 2021-02-01 09:38

    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.

    0 讨论(0)
提交回复
热议问题