我目前正在使用nitrous.io运行Django和芹菜,然后Cloudamqp作为我的代理与免费计划(最多3个连接)。我能够很好地进行连接,并且可以很好地启动定期任务。
当我跑的时候
celery -A proj worker -l info Cloudamqp上立即创建了两个连接,我可以在第三个连接上手动创建多个任务,一切都很好。然而,当我运行芹菜节拍与
celery -A proj worker -B -l info所有3个连接都被使用了,如果芹菜节拍创建了1个或更多新任务,则会创建另一个连接,从而超过允许的最大连接数。
我已经尝试过了,目前已经设置了
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 不走运。
为什么有两个立即建立的连接什么都不做?有没有办法将初始的芹菜连接限制为0或1,或者让任务在芹菜节拍连接上共享/运行?
发布于 2015-01-24 15:25:41
虽然它实际上并不限制连接,但另一个用户发现禁用连接池实际上减少了连接的数量:https://stackoverflow.com/a/23563018/1867779
BROKER_POOL_LIMIT = 0
Redis和Mongo后台有各自的连接限制参数。
max_pool_size参数)AMQP后端没有这样的设置。
考虑到这一点,我不确定BROKER_POOL_LIMIT会做什么,但我真的很想看看CELERY_AMQP_MAX_CONNECTIONS。
这里有一个相关的未回答的问题:How can I minimise connections with django-celery when using CloudAMQP through dotcloud?
https://stackoverflow.com/questions/23249850
复制相似问题