Django Celery Beat 和任务结果

Django Celery Beat and Tasks Results

django-celery-beat是否可以不保存短时间间隔执行的任务?默认情况下,所有结果都保存到任务结果 table.

我在 celeryproject 网页上找不到此信息。

或者,应该如何设置 postgres auto vacuum 才能使索引不占用那么多磁盘space?

我想要一个简单的解决方案。覆盖 django celery 逻辑不是一个选项。

rpc 后端并且 task_ignore_result 满足您的需求:

app = Celery('APP_NAME', backend='rpc://', broker=BROKER_URL)
# Keep result only if you really need them: task_ignore_result = False
# In all other cases it is better to have place somewhere in db
# Note that this means you can’t use AsyncResult to check if the task is ready, or get its return value.
app.conf.task_ignore_result = True

这里有一些关于后端的文档:https://docs.celeryproject.org/en/latest/userguide/tasks.html#rpc-result-backend-rabbitmq-qpid

我找到了解决办法。它比我想象的要简单。 如果不想将结果保存到数据库中,只需要在装饰器中添加:

@shared_task (ignore_result = True)