我有一个拥有 300 万用户的应用程序,我正在尝试通过 python 请求发出约 100,000 个 POST 请求。我对 Python 还很陌生,所以这就是我目前正在做的事情。我已经确定了约 100,000 个将接收个性化消息的用户,并抓取了他们的用户 ID 并将其存储在文本文件中。下面是我用来通过我自己的 Web API 向他们发送消息的代码(其中 txt 文件中的每一行都是一个用户 ID)。在我的 API 中,发送消息所需的唯一内容是有效负载中的用户 ID 和文本正文。 header 部分无关紧要,只是用于调试的 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 状态。因此,这可能会被认为是重复的,但在谷歌搜索和搜索后,我没有找到最适合我的解决方案。以我现在的速度,由于某种原因发送这 100,000 个请求需要一天半的时间。
一种解决方案是使用异步。我对此非常开放,但棘手的部分是 txt 文件。我有 100k 个唯一 ID 需要发布到。有时它们重叠,然后多个用户收到相同的消息。我只需要指出我认为正确的方向。非常感谢您的宝贵时间:)
最佳答案
将所有用户的这个文件拆分为 1000 个文件,然后每个线程运行一个文件的请求代码。因此,这将为每个文件创建 100 个用户,因此如果您在服务器上运行此文件,那么 1K 线程不会有太大问题。而且这将减少几乎 1/1000 的时间成本。您可能想查看Threads
关于python - 如何以最快的速度向我的用户发布 100,000 条独特的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45336019/