V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gy123
V2EX  ›  问与答

大佬,这个接口如何优化

  •  
  •   gy123 · 2022-02-16 19:13:25 +08:00 via iPhone · 920 次点击
    这是一个创建于 771 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一个记录听课时长的接口,目前每个用户每分钟访问一次,统计了下每天访问量很大,虽然没有到达瓶颈,想着如何优化下。 可以允许一分钟内的不实时,一天一百万不到的请求,但是有些逻辑。 1 、任务寸数据库,定时器抓任务处理。 2 、使用消息队列,拉模式。

    awalkingman
        1
    awalkingman  
       2022-02-16 19:21:34 +08:00
    每次用户请求先记录到 redis ,另起一个定时任务异步批量落库。
    p2pCoder
        2
    p2pCoder  
       2022-02-16 19:29:41 +08:00
    每一个用户的一次观看的一分钟请求来了之后,更新对应 count ,以及时间戳写入到 kv 数据库,同时发送一个延时队列消息,一定时间后触发,如果延时消息到达后,当前 kv 里面的时间戳和当前时间戳大于一定阈值,就删除对应的 kv 里面的信息,写入到 rdms
    查询的时候,就查询用此次观看的 id 先去查 kv ,查不到再查询数据库

    如果要想实现总听课时长的话,可以把上面的逻辑设计为两份,然后在相加,在重新设计下缓存
    LLaMA2
        3
    LLaMA2  
       2022-02-17 09:33:53 +08:00
    我又想到了如何作弊了,哈哈哈
    Kinnice
        4
    Kinnice  
       2022-02-17 10:07:20 +08:00 via Android
    ws 连接,记录开始时间和 ws 断开时间。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1126 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 22:54 · PVG 06:54 · LAX 15:54 · JFK 18:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.