J'écris une petite application Django et je devrais être capable de créer pour chaque objet du modèle sa tâche périodique qui sera exécutée avec un certain intervalle. Je suis utilisé pour cela une application Céleri, mais je ne peux pas comprendre une chose:Paramètres propres à la méthode run() PeriodicTask dans 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
Alors je ne suit:
>>> from tasks.tasks import ProcessQueryTask
>>> result1 = ProcessQueryTask.delay(query_task_pk=1)
>>> result2 = ProcessQueryTask.delay(query_task_pk=2)
Le premier appel est le succès, mais d'autres appels périodiques retour l'erreur - TypeError: run() prend exactement 2 arguments non-mot-clé (1 donné) dans serveur celeryd. Puis-je transmettre mes propres paramètres à PeriodicTask run()
?