芹菜价格限制请求

2024-03-29 07:09:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要找到一种方法来限制RabbitMQ交付任务的内部API服务器。在

这是我的流程:

API客户端>;内部API>;RabbitMQ>;Celery(120名员工)>;外部API

API客户端向内部API发送Web请求,内部API处理请求,任务发送到RabbitMQ。任务持续时间可能从5秒到120秒,在某些情况下,任务开始排队,并以高于定义的速率发送到外部API,从而导致大量失败的请求。(约5%的失败请求)

enter image description here

每个请求都成为RabbitMQ任务。RabbitMQ在默认情况下以最快的速度传递任务,这使得队列中的任务在释放工作线程时以更快的速度被传递。(大于10个QPS)

问题:如何限制RabbitMQ的任务交付?在

版本:

  • 烧瓶
  • 拉比MQ 3.6.4
  • AMPQ 1.4.9
  • 孔布3.0.35
  • 芹菜3.1.23
  • Python 2.7

可能的解决方案:

  • 外部增加外部API限制。。。在
  • 添加更多工人
  • 跟踪失败的任务,稍后重试

虽然这些解决方案可能有效,但并没有完全解决我的速率限制器的实现,也没有控制我的工人处理API请求的实际速率。在


Tags: 方法gt服务器apiweb客户端速率rabbitmq