我如何 post 向我的用户发送 100,000 条独特的消息,最快?

How would I post 100,000 unique messages to my users, the quickest?

我有一个拥有 300 万用户的应用程序,我正试图通过 python-requests 发出约 100,000 个 POST 请求。我对 Python 还是很陌生,所以这就是我目前正在做的事情。我已经确定了大约 100,000 名将接收个性化消息的用户,并已抓取了他们的用户 ID 并将它们存储在一个文本文件中。这是我用来通过我自己的网站 API 向他们发送消息的代码(其中 txt 文件中的每一行都是一个用户 ID)。在我的 API 中,发送消息唯一需要的是负载中的用户 ID 和文本 body。 headers 部分无关紧要,只是 ios/android 用于调试的设备信息。

with open("users.txt") as f:
    ids = f.read().splitlines()
    for uid in ids:
        payload = {"uid":uid,"text":"my personalized message to each user"}

        result = requests.post(base, data=json.dumps(payload), headers=headers)
        t += 1
        print(t, result)

"t" 值让我可以看到进度,结果是确保我获得 200 状态。因此,这可能会被认为是重复的,但在谷歌搜索和搜索后,我没有找到最适合我的解决方案。以我现在的速度,不知为何要发送这10万个req需要一天半的时间。

一种解决方案是使用异步。我对此非常开放,但棘手的部分是 txt 文件。我有 10 万个唯一 ID 需要 post。有时它们会重叠,然后多个用户会收到相同的消息。我只需要指出我想的正确方向。非常感谢您的宝贵时间:)

将所有用户的这个文件拆分成 1000 个文件,然后 运行 每个线程用一个文件请求代码。因此,这将为每个文件创建 100 个用户,因此如果您 运行 在服务器上使用 1K 线程不会有太大问题。这也将减少太多的时间成本,几乎是 1/1000。你可能想看看 Threads