Python 芹菜率不设上限
我有两个rabbitmq节点,每个节点为运行芹菜的5个节点提供队列 10个工作节点中的每一个都以4的并发性运行芹菜 当我向每一棵芹菜广播一个收费限制时,收费似乎并不是强加的 我用于广播速率限制的代码:Python 芹菜率不设上限,python,rabbitmq,celery,Python,Rabbitmq,Celery,我有两个rabbitmq节点,每个节点为运行芹菜的5个节点提供队列 10个工作节点中的每一个都以4的并发性运行芹菜 当我向每一棵芹菜广播一个收费限制时,收费似乎并不是强加的 我用于广播速率限制的代码: app = Celery('tasks', broker="amqp://%s:%s@%s/%s" % (config.rabbit_user, config.rabbit_pass, rabbit_ip, config.rabbit_vhost)) app.control.broadcast(
app = Celery('tasks', broker="amqp://%s:%s@%s/%s" % (config.rabbit_user, config.rabbit_pass, rabbit_ip, config.rabbit_vhost))
app.control.broadcast('rate_limit', arguments={'task_name': 'tasks.read', 'rate_limit': '100/s'})
据我所知,这个限制是每个工作者实例的,而不是全局的,所以我希望10个节点中的每个芹菜工作者每秒有100条消息。通常情况下,它们每秒消耗约500-600,但在广播之后,我在每个节点上每秒消耗约1.6。我查看了日志,大约每5秒有8条消息
将限制提高到200/s,我得到了介于2/s和2.4/s之间的任何速度 看起来这是一个问题,我们正在努力解决它。