使用数据库后端时是否需要使用celery.result.forget?

时间:2018-12-21 20:59:34

标签: django celery

我遇到了以下警告:

  

后端使用资源来存储和传输结果。为了确保释放资源,您最终必须在调用任务后返回的每个AsyncResult实例上调用get()或忘记()。

我当前正在使用django-db backend,并且我想知道不注意此警告的后果。如果我没有forgetAsyncResult,哪些资源将不会被“释放”?我不担心从数据库中清除任务结果。我主要担心的是有无受影响的工人。

1 个答案:

答案 0 :(得分:0)

我实际上从未见过该警告。只要您运行芹菜节拍,就可以了。 Celery有一个默认的定期任务,它为您安排为计划在4:00 AM运行。如果您使用的是Postgres或mysql等基于数据库的后端,则该任务将删除数据库中所有过期的结果。