【问题标题】:Celery with Redis broker in Django: tasks successfully execute, but too many persistent Redis keys and connections remainCelery 与 Django 中的 Redis 代理:任务成功执行,但仍有太多持久的 Redis 键和连接
【发布时间】:2019-06-11 03:33:10
【问题描述】:

我们的 Python 服务器(Django 1.11.17)使用 Celery 4.2.1 和 Redis 作为代理(我们使用的 pip redis 包是 3.0.1)。 Django 应用部署到 Heroku,Celery 代理是使用 Heroku 的 Redis Cloud 插件设置的。

我们拥有的 Celery 任务肯定应该在一分钟内完成(中位完成时间约为 100 毫秒),但我们看到 Redis 密钥和连接的持续时间比这要长得多(长达 24 小时) .否则,任务正在正确执行。

是什么导致了我们的 Redis 代理中的这些持久密钥和连接? Celery 任务结束后如何清除它们?

这是 Redis Labs 的屏幕截图(所有任务都应该已完成,因此我们希望零键和零连接):

【问题讨论】:

    标签: python django heroku redis celery


    【解决方案1】:

    解决了我自己的问题:如果 CELERY_IGNORE_RESULT 配置变量设置为 True(我可以这样做,因为我不使用任务的任何返回值),那么键和连接又回来了受到控制。

    来源:Celery project documentation

    【讨论】:

      猜你喜欢
      • 2015-08-19
      • 1970-01-01
      • 2021-09-28
      • 2020-04-15
      • 2013-04-27
      • 2021-10-03
      • 1970-01-01
      • 1970-01-01
      • 2014-09-14
      相关资源
      最近更新 更多