2
我正在寫一個小型的Django應用程序,我應該能夠爲每個模型對象創建 其週期性任務,它將以一定的時間間隔與 執行。我使用了這個應用程序芹菜,但我不明白一兩件事:自己的參數在芹菜的PeriodicTask run()方法
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()在 celeryd服務器中使用恰好2個非關鍵字參數(給出1)。 我可以將自己的參數傳遞給PeriodicTask run()
嗎?