【发布时间】:2020-12-23 04:00:22
【问题描述】:
我正在尝试使用 redis 和 celery 提供互联网服务。 我的 redis 实例绑定到 10 个并发客户端。当我试图只运行一个工作人员时,它会出于某种原因启动 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_max_connections,但没有帮助
beta_broker = Celery('src.beta_module', broker=config.celery_redis_url, include=['src.beta_module.notifications'])
beta_broker.conf.redis_max_connections = 2
broker_pool_limit = 0 BROKER_TRANSPORT_OPTIONS = { “最大连接数”:20, }
仍然创建 8 个到 redis 的连接
有什么方法可以禁止接收任务结果?反正我不需要这个功能。也许这有助于减少连接数?
更新
经过大约 3 天的研究和阅读大量博客和文档后,我决定切换到 rq
【问题讨论】: