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)
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)