加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – Celery Cloudamqp为每个任务创建新连接

发布时间:2020-12-20 13:42:09 所属栏目:Python 来源:网络整理
导读:我目前正在使用运行Django和Celery的nitrous.io,然后使用Cloudamqp作为我的经纪人和免费计划(最多3个连接).我能够很好地连接并启动周期性任务就好了. 我跑的时候 celery -A proj worker -l info 在Cloudamqp上立即创建了2个连接,我可以在第3个连接上手动创建
我目前正在使用运行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个连接立即无效?
是否有某种方法将初始芹菜连接限制为0或1,或者在celery beat连接上分配/运行任务?

解决方法

虽然它实际上并没有限制连接,但另一个用户发现禁用连接池减少了实际连接的数量:
https://stackoverflow.com/a/23563018/1867779

BROKER_POOL_LIMIT = 0

Redis和Mongo后端有自己的连接限制参数.

> http://docs.celeryproject.org/en/master/configuration.html#celery-redis-max-connections
> http://docs.celeryproject.org/en/master/configuration.html#celery-mongodb-backend-settings(使用max_pool_size参数)

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?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读