我们的Python服务器(Django 1.11.17)使用带有Redis的Celery 4.2.1作为代理(我们使用的pip redis软件包是3.0.1)。 Django应用程序已部署到Heroku,而Celery经纪人是使用Heroku的Redis Cloud插件设置的。
我们必须完全在一分钟内完成Celery任务(完成时间中位数约为100毫秒),但是我们发现Redis密钥和连接的持久性要长得多(长达24小时) 。否则,任务将无法正确执行。
会发生什么,导致我们的Redis代理中的这些持久键和连接持久化?当Celery任务完成时,我们如何清除它们?
这是Redis Labs发生的这种情况的屏幕截图(所有任务应该已经完成,因此我们期望零键和零连接):
答案 0 :(得分:0)
解决了我自己的问题:如果将CELERY_IGNORE_RESULT
配置变量设置为True
(之所以能够这样做是因为我没有使用任务中的任何返回值),那么这些键并且连接又重新得到控制。