14

当我运行 syncdb 时,我注意到创建了很多表,例如:

  • djcelery_crontabschedule
  • ...
  • djcelery_taskstate

django-kombu 提供传输,因此它与实际队列无关。即使当我运行任务时,我仍然看到这些表中没有填充任何内容。这些表是做什么用的?仅用于监控目的——如果我启用它?

如果是这样,如果我查找 AsyncResult(),我猜这实际上是通过 django-kombu 表而不是 djcelery 查找任务结果,这也是真的吗?

谢谢。

4

1 回答 1

13

由守护进程 celerycam 填充的 celery task_state 表仅用于监控目的。

其他表,如“crontabschedule”、“intervals”等,用于使用 django 后端数据库调度周期性任务。当您以节拍模式 (-B) 启动 celery 以及在设置中设置此 var 时,将使用这些表

CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"

通过这种方式,您告诉 celery 使用 django db 来安排任务。

于 2011-05-22T08:42:40.127 回答