python中的300k POST请求

2024-05-14 14:51:57 发布

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

我正在试着做大约30万个POST请求。问题当然是性能。 因此,我从MySQL数据库获取数据,然后向其中一个API端点发送请求。 这就是我在一开始的想法,基本上是从数据库中获取所有的数据,然后逐行读取数据,每次获取数据行时,我都会发出POST请求。显然,拥有30万排需要很长时间。你知道吗

def post_request(payload):
    r = requests.post(settings.api_host + "ppl.json", data=payload)
    response_data = json.loads(r.text)
    with open("./data/db.txt", "a") as f:
        f.write(response_data + "\n\n")

for row in results:
    data_json = {
        "access_token": settings.access_token,
        "name": row[0],
        "age": row[1]
    }

    post_request(data_json)

所以为了加快这个过程,我试着做了如下的事情:

payloads = []

for row in results:
    data_json = {
        "access_token": settings.access_token,
        "name": row[0],
        "age": row[1]
    }
    payloads.append(data_json)


pool = multiprocessing.Pool(5)
pool.map(send_data, payloads)


def send_data(payload):
    r = requests.post(settings.api_host + "ppl.json", data=payload)
    response_data = json.loads(r.text)
    with open("./data/db.txt", "a+") as f:
        f.write(response_data + "\n\n")

这条路也很慢。。。 同样在以上两个例子中,我都进入了 requests.exceptions.SSLError: [Errno 1] _ssl.c:503: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed 在大约1000个请求之后

有关于如何解决性能和SSL问题的解决方案吗?你知道吗


Tags: token数据库jsondatasettingsaccessresponsedef

热门问题