使用数据库后端时如何让芹菜过期结果
How to have celery expire results when using a database backend
我不确定我是否理解 result_expires
的工作原理。
我读了,
result_expires
Default: Expire after 1 day.
Time (in seconds, or a timedelta object) for when after stored task tombstones will be deleted.
A built-in periodic task will delete the results after this time (celery.backend_cleanup), assuming that celery beat is enabled. The task runs daily at 4am.
...
When using the database backend, celery beat must be running for the results to be expired.
(来自这里:http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-result_expires)
所以,为了让它起作用,我实际上必须做这样的事情:
python -m celery -A myapp beat -l info --detach
?
"celery beat is enabled" 文档所指的是这个吗?或者,不是手动执行此操作,而是需要设置一些配置,这会导致 celery beat
被自动调用?
回复:芹菜节拍--你是对的。如果您使用数据库后端,则必须 运行 celery beat 就像您 post 在原始 post 中编辑一样。默认情况下,celery beat 会设置一个每日任务,该任务将从结果数据库中删除较旧的结果。如果您使用的是 redis 结果后端,则不必 运行 celery beat。你如何选择 运行 celery beat 取决于你,就个人而言,我们通过 systemd 来完成。
如果您想将默认过期时间配置为默认的 1 天以外的时间,您可以使用 celery 中的 result_expires
设置来设置记录结果后的秒数被删除。例如,1800 30 分钟。
我不确定我是否理解 result_expires
的工作原理。
我读了,
result_expires
Default: Expire after 1 day.
Time (in seconds, or a timedelta object) for when after stored task tombstones will be deleted.
A built-in periodic task will delete the results after this time (celery.backend_cleanup), assuming that celery beat is enabled. The task runs daily at 4am.
...
When using the database backend, celery beat must be running for the results to be expired.
(来自这里:http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-result_expires)
所以,为了让它起作用,我实际上必须做这样的事情:
python -m celery -A myapp beat -l info --detach
?
"celery beat is enabled" 文档所指的是这个吗?或者,不是手动执行此操作,而是需要设置一些配置,这会导致 celery beat
被自动调用?
回复:芹菜节拍--你是对的。如果您使用数据库后端,则必须 运行 celery beat 就像您 post 在原始 post 中编辑一样。默认情况下,celery beat 会设置一个每日任务,该任务将从结果数据库中删除较旧的结果。如果您使用的是 redis 结果后端,则不必 运行 celery beat。你如何选择 运行 celery beat 取决于你,就个人而言,我们通过 systemd 来完成。
如果您想将默认过期时间配置为默认的 1 天以外的时间,您可以使用 celery 中的 result_expires
设置来设置记录结果后的秒数被删除。例如,1800 30 分钟。