我们正在计划以芹菜为执行器的Airflow任务,代理和结果后端都是redis。有200多个队列和100多个工作线程,现在redis连接为9200+,非常接近redis最大连接阈值10000。
我尝试了2种减少redis连接的方法,但是它们都无法正常工作,我尝试过的方法是:
ignore_result=True
中设置@app.task()
,此方法可以显着减少Redis连接,但是celery中的任务状态将被忽略,并且如果失败,则无法在Airflow中安排任务,因为调度程序无法获取有关celery任务已失败的信息。BROKER_POOL_LIMIT=0
,此方法可以稍微减少redis连接,将此配置添加到airflow.cfg后,将没有任务运行的队列的redis连接从10减少到8。我已经将芹菜从4.0.2升级到4.1.0,但是问题仍然存在,还有其他方法可以正确解决此问题吗?