-
慕少森
谢邀
其实楼上都给出了很好的解决方案
具体就看业务需求吧,如果实时性要求不高的话,可以设置一个定时任务,然后扫表筛选符合的来自动好评。如果真的实时性要求很高的话,就像你提到的对于自动退款、超时未支付等等那你就只能对每个订单去设置一个超时时间了。
你只要将(超时后处理的函数、处理的时间、订单相关的参数)打包成一个消息交给一个后台程序,它会在你指定的处理时间,找到超时后处理的函数,并将你给的订单相关的参数交给这个函数处理。这样就完成了某个订单的定时任务。
你说的Celery可以应对你所说的场景吧,它有个delay执行很好用啊。
-
慕斯709654
为什么要每一单都建立一个定时任务?只要有一个定时任务定时去查有哪些符合条件的订单然后修改为好评不就行了。。
-
潇潇雨雨
给你个另类的思路,不需要定时更新处理:
评价表包含(也可以直接在订单表上增加评价相关字段):订单id , 评价相关信息(图片,文字,评分等等), 评价时间。
支付成功时:生成好评评价,评价时间设置为支付时间+n天。
用户订单列表:评价表上 评价时间>当前时间的为未评价,用户可操作评价,评价后更新评价内容,评价时间为当前时间。评价时间<当前时间的为已评价。
详情页:只显示评价时间<当前时间的信息。