大批量推送项目日记(五):代码自测

2020.8.7

正文

今日,本人将代码完善的差不多了。

1.本人的代码提供了一个接口url,被调用时,先从数据库select出待推送的数据条数,然后用for循环,调用另一个接口(别人写好的url),并update数据库中该条数据的状态标志为已推送;这样就实现了给用户推送消息的功能。

2.其中,还有一个最大重试次数的逻辑,如果出现推送未成功的数据,则sleep指定时间后,重新调用接口发起推送。

3.然后就是昨天写的逻辑了,当该线程正在处理时,如果本人的接口再次被调用,也不会重复执行该线程。

自测结果如下:

select与update操作100条数据(每条数据中有1000个用户),发起100次http请求;也就是10万个消息,用时【10秒】;

select与update操作1000条数据(每条数据中有1000个用户),发起1000次http请求;也就是100万个消息,用时【2分】;

select与update操作10000条数据(每条数据中有1000个用户),发起10000次http请求;也就是100万个消息,用时【22分】;

考虑到实际情况,一般一次最多给100万个用户每人推送一条消息就够了,也就是100万个消息,【2分】就执行完了,还可以接受。

-----------------------------------------------------

后记

虽然是大批量推送项目,不过总感觉本人负责的模块不是很复杂,用常规方法就写完了,没什么特殊处理。

如果推送到一半出错,重新调用一次本人的接口就行了(本人还有发现推送失败的任务后重新推送的逻辑在)。

总的来说,开发用时2天,完善用时2天,自测用时1天。

下周开始联调,到时候看看有没有其余问题吧。

原文地址:https://www.cnblogs.com/codeToSuccess/p/13906219.html