4

我有一个具有多个任务的 celery 链,其中一个是提取 tar 文件并返回在该 tar 文件中找到的 JSON。在链完成时,pylibmc引发error 37 from memcached_set: SUCCESS这意味着与该任务键关联的 memcached 值大于 1MB。

此错误不会干扰链的数据完整性,但我真的不想将此数据写入缓存,因为它实际上永远不会再次使用。

我查看了 Celery 文档,但没有发现任何有助于禁用特定任务的缓存。任何援助将不胜感激。

4

1 回答 1

4

您可以使用CELERY_IGNORE_RESULTTask.ignore_result不存储结果。该值仍然返回给链中的函数,它们只是没有持久化到缓存中。这是一个使用示例ignore_result

@task(ignore_result=True)
def your_task():
    # your code here

文档:http ://docs.celeryproject.org/en/latest/reference/celery.app.task.html#celery.app.task.Task.ignore_result

为我指明了正确方向的博客文章:https ://www.caktusgroup.com/blog/2014/09/29/celery-production/

于 2016-05-25T20:57:31.747 回答