Python芹菜在redis上创建了很多连接

2024-03-28 10:16:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用redis和芹菜制作互联网服务。 我的redis实例绑定到10个并发客户端。当我尝试只运行一个worker时,它会出于某种原因启动6-9个连接(我在redis管理面板上看到)。一段时间后,它开始抛出“已达到最大客户端数”错误。 这是工人使用这么多连接的预期行为吗?我应该切换到rabbitmq吗

config = Configuration(None, EnvironmentType.beta, '../configuration.json')
 
beta_broker = Celery('src.beta_module', broker=config.celery_redis_url, include=['src.beta_module.notifications'])



 
 
def main():
    beta_broker.start(argv=['celery', 'worker', '-E', '--concurrency=1', '--loglevel=DEBUG'])
 
 
if __name__ == '__main__':
    main()

已更新

我试图建立redis\u max\u连接,但没有帮助

    beta_broker = Celery('src.beta_module', broker=config.celery_redis_url, include=['src.beta_module.notifications'])
    beta_broker.conf.redis_max_connections = 2

经纪人池限制=0 经纪人\运输\选项={ “最大连接数”:20, }

仍然创建8个到redis的连接

有没有办法禁止接收任务的结果?我不需要这个功能无论如何。也许这有助于减少连接的数量

已更新

经过大约3天的研究和阅读大量的博客和文档后,我决定改用rq


Tags: srcredisconfigurl客户端includemainbroker
2条回答

请尝试以下操作:

beta_broker.conf["broker_transport_options"] = {'fanout_prefix': True,
                                                'fanout_patterns': True,
                                                'max_connections': 2,
                                                'socket_keepalive': True},
beta_broker.conf["broker_pool_limit"] = 2

您是否尝试过用芹菜设置redis连接池的最大连接数https://docs.celeryproject.org/en/stable/userguide/configuration.html#redis-max-connections

redis_max_connections-默认值:无限制

相关问题 更多 >