python – Celery Cloudamqp为每个任务创建新连接
我目前正在使用运行Django和Celery的nitrous.io,然后使用Cloudamqp作为我的经纪人和免费计划(最多3个连接).我能够很好地连接并启动周期性任务就好了.
我跑的时候 celery -A proj worker -l info 在Cloudamqp上立即创建了2个连接,我可以在第3个连接上手动创建多个任务,一切都很顺利.但是,当我用芹菜打败时 celery -A proj worker -B -l info 使用所有3个连接,如果芹菜节拍创建一个或多个新任务,将创建另一个第四个连接,从而超过允许的最大连接数. 我已经尝试过,现在已经设定好了 BROKER_POOL_LIMIT = 1 但这似乎并没有限制连接 celery -A proj worker -B -l info celery -A proj worker -B -l info -c 1 celery -A proj worker -B -l info --autoscale=1,1 -c 1 没有运气. 为什么有2个连接立即无效? 解决方法
虽然它实际上并没有限制连接,但另一个用户发现禁用连接池减少了实际连接的数量:
https://stackoverflow.com/a/23563018/1867779 BROKER_POOL_LIMIT = 0 Redis和Mongo后端有自己的连接限制参数. > http://docs.celeryproject.org/en/master/configuration.html#celery-redis-max-connections AMQP后端没有这样的设置. > http://docs.celeryproject.org/en/master/configuration.html#amqp-backend-settings 鉴于此,我不确定BROKER_POOL_LIMIT是做什么的,但我真的很想看到CELERY_AMQP_MAX_CONNECTIONS. 这是一个相关的,未回答的问题:How can I minimise connections with django-celery when using CloudAMQP through dotcloud? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |