Я надеюсь, что смогу программно генерировать записи сельдерея и повторной синхронизации сельдерея при добавлении записей.Документы здесь состояние
По умолчанию записи берутся из параметра CELERYBEAT_SCHEDULE, но также можно использовать пользовательские хранилища, например, хранить записи в базе данных SQL.
Поэтому я пытаюсь выяснить, какие классы мне нужно расширить, чтобы иметь возможность сделать это.
Я смотрю на документы по планировщику сельдерея и djcelery api docs но документация о том, что делают некоторые из этих методов, отсутствует, так что собиралась погрузиться в какой-то источник и просто надеялась, что кто-то может указать мне правильное направление.
Я полагаю, высокийуровень того, что я делаю, был бы полезен ... Как пользователь, я должен быть в состоянии выбрать из предопределенного набора задач и предоставить пользователю возможность выбрать какой-то пользовательский график для его выполнения, как каждыйдень / неделя / месяц и какой день и время.
Также это в Django с djcelery.
ОБНОВЛЕНИЕ
Я вижу код дляадминистратор djcelery, но я неясно, как эти данные сохраняются.В настоящее время у меня есть общее представление addTask
, которое выглядит следующим образом:
def addTask(request):
intervalSchedule = IntervalSchedule.from_schedule(schedule(timedelta(seconds=10)))
intervalSchedule.save()
modelData = dict(
name="dcTestPersist",
task="technologytrackerapi.views.createRecord",
schedule=intervalSchedule,
)
periodicTask = PeriodicTask(**modelData)
periodicTask.save()
return render_to_response('taskView.html')
Данные в БД выглядят корректно, но при запуске демона выдает следующую ошибку:
[2012-03-06 00: 23: 07,926: ПРЕДУПРЕЖДЕНИЕ / Удар] Обработка процесса:
[2012-03-06 00: 23: 07,926: ПРЕДУПРЕЖДЕНИЕ / Удар] Отслеживание (последний вызов последнего):
[2012-03-06 00: 23: 07,926: ПРЕДУПРЕЖДЕНИЕ / Удар] Файл "/usr/lib/python2.7/multiprocessing/process.py", строка 258, в _bootstrap
[2012-03-06 00:23:07 926: ПРЕДУПРЕЖДЕНИЕ / Удар] self.run ()
[2012-03-06 00: 23: 07 927: ПРЕДУПРЕЖДЕНИЕ / Удар] Файл "/home/dchesterman/Documents/PythonDev/.virtualenvs/ros/local/lib/python2.7 / site-packages / celery / beat.py ", строка 464, в прогоне
[2012-03-06 00: 23: 07,927: WARNING / Beat] self.service.start (embedded_process = True)
[2012-03-06 00: 23: 07,927: ПРЕДУПРЕЖДЕНИЕ / Файл Beat] "/ home / dchesterman / Documents / PythonDev /.virtualenvs/ros/local/lib/python2.7/site-packages/celery/beat.py ", строка 403, в начале
[2012-03-06 00: 23: 07,927: ПРЕДУПРЕЖДЕНИЕ / Удар] интервал = self.scheduler.tick ()
[2012-03-06 00: 23: 07,927: ПРЕДУПРЕЖДЕНИЕ / Удар] Файл "/home/dchesterman/Documents/PythonDev/.virtualenvs/ros/local/lib/python2.7/site-packages / celery / beat.py ", строка 194, в тик
[2012-03-06 00: 23: 07,927: ПРЕДУПРЕЖДЕНИЕ / Удар] next_time_to_run = self.maybe_due (entry, self.publisher)
[2012-03-06 00: 23: 07,927: ПРЕДУПРЕЖДЕНИЕ / Удар] Файл "/home/dchesterman/Documents/PythonDev/.virtualenvs/ros/local/lib/python2.7/site-packages/celery/beat.py", строка170, в Maybe_due
[2012-03-06 00: 23: 07,927: WARNING / Beat] is_due, next_time_to_run = entry.is_due ()
[2012-03-06 00: 23: 07,928: WARNING / Beat] Файл "/home/dchesterman/Documents/PythonDev/.virtualenvs/ros/local/lib/python2.7/site-packages/djcelery/schedulers.py", строка 54, в is_due
[2012-03-0600: 23: 07,928: WARNING / Beat] вернуть self.schedule.is_due (self.last_run_at)
[2012-03-06 00: 23: 07,928: WARNING / Beat] AttributeError: «У объекта NoneType нет атрибута»is_due '
Я не уверен, почему мой график нене использовать значение по умолчанию is_due()