我试着用红花和芹菜制作网络服务。我的redis实例与10个同步客户端绑定。当我试图只运行一个工人时,它会出于某种原因启动6-9连接(我在redis管理面板上看到了这一点)。过了一段时间,它开始抛出“最大客户端到达”错误。这是员工使用这么多连接时所期望的行为吗?我该换兔子吗?
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_max_connections,但没有帮助
beta_broker = Celery('src.beta_module', broker=config.celery_redis_url, include=['src.beta_module.notifications'])
beta_broker.conf.redis_max_connections = 2broker_pool_limit =0 BROKER_TRANSPORT_OPTIONS ={ 'max_connections':20,}
仍然创建到redis的8个连接。
是否有任何方法来禁用任务的接收结果?反正我也不需要这个功能。也许它会有助于减少连接的数量?
更新
经过大约3天的研究和阅读大量的博客和文档,我决定改用rq。
发布于 2020-09-04 07:15:06
你试过用芹菜设置红葡萄酒池的最大连接吗?https://docs.celeryproject.org/en/stable/userguide/configuration.html#redis-max-connections
redis_max_connections -默认:无限制。
发布于 2020-09-04 12:41:50
尝试以下几点:
beta_broker.conf["broker_transport_options"] = {'fanout_prefix': True,
'fanout_patterns': True,
'max_connections': 2,
'socket_keepalive': True},
beta_broker.conf["broker_pool_limit"] = 2https://stackoverflow.com/questions/63731689
复制相似问题