首页 > 解决方案 > Python 请求 - 批量 API 调用

问题描述

我正在开发一个 API 来将记录从数据库推送到端点。

我已经设法编写了一段代码来获取记录,它正在解析它们并最终推送到 API 并且工作得很好。

它设法推动大约 400 个请求/分钟,我想知道我是否可以批量处理这些请求以使其性能更高一些,但我无法理解如何实现这一点。

API 调用 url 为:

http://call-url.com/service/ {id}

考虑 id 的有效载荷:

id = 101

{
"stars":3
"position":5
"date":"2002-04-30T10:00:00+00:00"
}
url = http://call-url.com/service/101

我正在使用 python 和 requests 模块来推送记录。

正如我们所说,我正在为每个单独的 id 抓取记录并解析负载并推送它们。

到目前为止,我遇到了异步和线程,但我需要确保我不会两次推送相同的请求。

是否可以一次推送超过 1 条记录?

谢谢,

标签: performancepostpython-requestsbatching

解决方案


您可以使用任何 AMQP 消息代理。以 RabbitMQ 为例。这个概念很简单,只需查看教程。将您的脚本拆分为main.py(读取数据库、准备有效负载并将它们推送到队列)和worker.py(从队列中获取有效负载并发送到 API),然后worker.py根据需要生成尽可能多的进程......


推荐阅读