Я пишу небольшое приложение на Django, и я должен быть в состоянии создать
для каждого модельного объекта свое периодическое задание, которое будет выполнено с
определенный интервал. Я использую для этого приложение Celery, но я не могу понять одну вещь:
class ProcessQueryTask(PeriodicTask):
run_every = timedelta(minutes=1)
def run(self, query_task_pk, **kwargs):
logging.info('Process celery task for QueryTask %d' %
query_task_pk)
task = QueryTask.objects.get(pk=query_task_pk)
task.exec_task()
return True
Тогда я делаю следующее:
>>> from tasks.tasks import ProcessQueryTask
>>> result1 = ProcessQueryTask.delay(query_task_pk=1)
>>> result2 = ProcessQueryTask.delay(query_task_pk=2)
Первый вызов успешен, но другие периодические вызовы возвращают ошибку
- TypeError: run () принимает ровно 2 аргумента без ключевых слов (1 дан) в
сервер сельдерея.
Могу ли я передать собственные параметры в PeriodicTask run()
?