5
回答
一个业务问题 哪位大神指导下
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

某一个打车订单  如果评价的话 用户会得到奖励  如果没有评价 三天后自动好评 司机获得奖励

<无标签>
举报

问题分为两部分:
1) 如果评价的话 用户会得到奖励
2)如果没有评价 三天后自动好评 司机获得奖励

问题1)比较简单:因为每条订单都有一个生成时间, 只要判断用户的评价时间<=订单生成时间+3天就可以了

难的是问题 2):如何自动好评

我没想到比较好的方法,但是如果让我做, 我会:

1)使用redis的有序集来存储订单id对应的过期时间(订单的过期时间=订单生成时间+3天), 这个有序集命名为orders(之所以是有序集,orders里面的元素会按照score从小到大递增排序):score表示过期时间,member是订单的id

2)用一个线程,一直循环执行这样的逻辑:获取当前时间戳T,从orders中取出所有score<=T的元素,得到集合L;遍历L,如果发现订单没有评价,就给对应的司机奖励即可……

 

1. 定时任务每天跑一次,取3天前的订单,没评价自动好评

2. 订单号存入redis,设置过期时间。开启键空间通知,键过期时收到通知,自动好评

写个job每晚自动批量 update 订单表 set 评价 = '<好评>' where  sysdate - 下单时间>=3;

如果3天时间必须是比较准确的话,job周期可以设置成每几分钟或几个小时,这样来跑脚本

顶部