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


    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天。

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

  • 相关阅读:
    with open 向文件的某一固定行,追加内容
    静态语言 与 动态语言 的区别
    ELK
    matplotlib绘图
    django用户认证
    django+uwsgi+nginx 部署生产环境
    图片验证码+session
    ajax
    form
    middleware中间件
  • 原文地址:https://www.cnblogs.com/codeToSuccess/p/13906219.html
Copyright © 2020-2023  润新知