小编Ale*_*yko的帖子

拥有Celery中的PeriodicTask run()方法的参数

我正在编写一个小的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
Run Code Online (Sandbox Code Playgroud)

然后我做了以下事情:

>>> from tasks.tasks import ProcessQueryTask
>>> result1 = ProcessQueryTask.delay(query_task_pk=1)
>>> result2 = ProcessQueryTask.delay(query_task_pk=2)
Run Code Online (Sandbox Code Playgroud)

第一次调用是成功的,但其他定期调用返回错误 - TypeError:run()在celeryd服务器中只接受2个非关键字参数(给定1个).我可以将自己的参数传递给PeriodicTask run()吗?

python rabbitmq celery

2
推荐指数
1
解决办法
1542
查看次数

标签 统计

celery ×1

python ×1

rabbitmq ×1