在 celery 任务上禁用缓存
Disable caching on celery task
我有一个具有多个任务的 celery 链,其中一个任务是提取一个 tar 文件并返回在该 tar 文件中找到的 JSON。在链完成时,pylibmc
引发 error 37 from memcached_set: SUCCESS
,这意味着与该任务键关联的 memcached 值大于 1MB。
此错误不会影响链的数据完整性,但我真的不想将此数据写入缓存,因为它实际上永远不会被再次使用。
我查看了 Celery 文档,但没有发现任何有助于在特定任务上禁用缓存的内容。如有任何帮助,我们将不胜感激。
您可以使用CELERY_IGNORE_RESULT
或Task.ignore_result
不存储结果。该值仍然返回给链中的函数,它们只是没有持久保存到缓存中。这是一个使用 ignore_result
的例子
@task(ignore_result=True)
def your_task():
# your code here
博客 post 为我指明了正确的方向:https://www.caktusgroup.com/blog/2014/09/29/celery-production/
我有一个具有多个任务的 celery 链,其中一个任务是提取一个 tar 文件并返回在该 tar 文件中找到的 JSON。在链完成时,pylibmc
引发 error 37 from memcached_set: SUCCESS
,这意味着与该任务键关联的 memcached 值大于 1MB。
此错误不会影响链的数据完整性,但我真的不想将此数据写入缓存,因为它实际上永远不会被再次使用。
我查看了 Celery 文档,但没有发现任何有助于在特定任务上禁用缓存的内容。如有任何帮助,我们将不胜感激。
您可以使用CELERY_IGNORE_RESULT
或Task.ignore_result
不存储结果。该值仍然返回给链中的函数,它们只是没有持久保存到缓存中。这是一个使用 ignore_result
@task(ignore_result=True)
def your_task():
# your code here
博客 post 为我指明了正确的方向:https://www.caktusgroup.com/blog/2014/09/29/celery-production/