美文网首页
后端场景问题讨论:商品购物结束后,5天后自动好评,这个可以怎么实

后端场景问题讨论:商品购物结束后,5天后自动好评,这个可以怎么实

作者: 程序员小鬼 | 来源:发表于2023-07-25 00:16 被阅读0次

欢迎各位一起讨论,目前正在整理面试问题,我会汇总到这里

https://github.com/shubiaodian/javaerdiscussion
数据表的大概结构

购物详情id 购物sku ... 评论状态 购物时间 评论
1 毛衣(123) ... 已评论(1) 2023-05-21 毛衣真好看
2 故事书(234) ... 未评论(0) 2023-05-26 null
  • 具体方案:
    定时任务扫描,扫描出 【评论状态】==0 &&(【 购物时间】+5天)<当前时间的数据
    然后将【评论状态】设置为1,并且添加评论
    存在的问题:
    表中数据量很大的时候,定时去扫表的效率很低。

2.延迟消息队列

  • 具体方案:
    (1)购物结束后,将【购物详情id】作为消息,扔到延迟消息队列里面,延迟时间为5天
    (2)购物结束后,将【购物详情id】和【 购物时间】作为消息,扔到延迟消息队列里面,延迟时间为1小时,消费者检查消息 【评论状态】==0 &&(【 购物时间】+5天)<当前时间,如果满足条件继续放到延迟消息队列中
  • 存在的问题:
    (1)延迟消息队列可能会积压
    (2)能够缓解积压的问题,但是大部分用户购物后都不会去评论,消息积压的问题仍然得不到解决

3.针对评论查询接口优化

  • 数据表结构

    购物详情id 购物sku ... 购物时间 评论时间 评论
    1 毛衣(123) ... 2023-05-21 2023-05-21 毛衣真好看
    2 故事书(234) ... 2023-05-26 2023-05-31 null
  • 具体方案:
    针对查询接口进行优化,读优化
    (1)如果 【评论时间】>当前时间,则表示【已评论】,评论如果为空,则展示默认评论
    (2)如果 【评论时间】<=当前时间,则表示【未评论】
    写优化
    (1)购物结束后,将评论时间设置为 【当前时间】+5天
    (2)评论完成以后,将评论时间设置为当前时间

  • 存在的问题:
    (1)如果在评论完成后需要执行其他动作(例如:通知商户收到好评,或者通知用户该订单已经自动好评),这种方案没办法实现

相关文章

网友评论

      本文标题:后端场景问题讨论:商品购物结束后,5天后自动好评,这个可以怎么实

      本文链接:https://www.haomeiwen.com/subject/wgicpdtx.html