2

我有一个拥有300万用户的应用程序,我试图通过python请求发出〜100,000个POST请求。我对Python仍然非常青睐,所以这就是我目前正在做的事情。我已经识别出约100,000个接收个性化消息的用户,并且已经刮掉了他们的用户ID并将它们存储在文本文件中。这里是我用来通过我自己的web API向他们发送所有消息的代码(其中txt文件中的每行都是用户ID)。在我的API中,发送消息所需的唯一东西是用户标识和有效负载中的文本正文。标题部分是无关紧要的,只是用于调试的ios/android设备信息。我会如何向用户发送100,000条独特消息,最快?

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状态。所以,这可能会出现重复,但经过Google搜索并搜索完毕后,我找不到适合我的最佳解决方案。以我现在的速度,出于某种原因需要花费一天半的时间才能发送这10万条需求。

一个解决方案是使用异步。我对此非常开放,但棘手的部分是txt文件。我有100k UNIQUE ID,我需要发布到。有时它们重叠,然后多个用户得到相同的信息。我只需要指出我想的正确方向。非常感谢您的时间:)

+1

把这个文件分成1000个文件,然后用每个线程一个文件运行请求代码。不是最好的解决方案,但可能会工作 –

+0

@ArpitSolanki在盒子外思考!这可能是我最终要做的! :D –

+0

注意CPU使用率和带宽,因为你可能不想让服务器崩溃。 1K线程是大号 –

回答

2

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

相关问题