Python芹菜在redis上创建了很多连接
我正在尝试使用redis和芹菜制作互联网服务。 我的redis实例绑定到10个并发客户端。当我尝试只运行一个worker时,它会出于某种原因启动6-9个连接(我在redis管理面板上看到)。一段时间后,它开始抛出“已达到最大客户端数”错误。 这是工人使用这么多连接的预期行为吗?我应该切换到rabbitmq吗Python芹菜在redis上创建了很多连接,python,redis,celery,Python,Redis,Celery,我正在尝试使用redis和芹菜制作互联网服务。 我的redis实例绑定到10个并发客户端。当我尝试只运行一个worker时,它会出于某种原因启动6-9个连接(我在redis管理面板上看到)。一段时间后,它开始抛出“已达到最大客户端数”错误。 这是工人使用这么多连接的预期行为吗?我应该切换到rabbitmq吗 config = Configuration(None, EnvironmentType.beta, '../configuration.json') beta_broker = Cel
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您是否尝试过用芹菜为redis连接池设置最大连接数
redis\u max\u连接
-默认值:无限制。尝试以下操作:
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
没有帮助。我仍然看到很多客户。在帖子中查看我的更新谢谢你的解决方案,我一定会尝试,但我决定改用RQ。我觉得它更简单,更有趣。是的,如果你想要简单,那么Huey()或RQ是值得尝试的。。。芹菜功能更强大、更灵活(用户可以编写任何主要芹菜功能的实现——我们已经有了自己的自动缩放、调度、监控等)。