首页新闻找找看学习计划

电商设计问题

0
[已解决问题] 解决于 2017-03-26 21:15

当你们遇到如下需求时你们是怎么处理,是给每个一个定时任务或者是什么?

1.待付款 60分钟后未付款 变已取消
2.买家申请退款,七天后商家无操作,退款状态由申请退款变为退款关闭
3.商家申请退款,买家没点击同意,三天自动退款给买家
4.发货后10天不点确认收货,系统自动确认收货
5.申请退货,七天不操作,自动同意退货
6.申请换货,七天不操作,自动同意换货
7.(无投诉)时,不修改申请,不申请投诉,不撤销申请时,7天后系统都会自动关闭换货
8..(无投诉)时,不修改申请,不申请投诉,不撤销申请时,7天后系统都会自动关闭退款

dom树的主页 dom树 | 初学一级 | 园豆:4
提问于:2017-03-24 16:13
< >
分享
最佳答案
1

整好实现了一个框架解决这些问题.

整个框架包含1.事件处理平台 2.消息队列 3.定时任务平台(Hangfire)

定时任务只做一个事情.那就是定时发送消息.触发指定事件.

整个系统的所有操作都定义为消息事件.事件处理

事件处理平台订阅消息队列.将各个类型的消息分发给各自的处理方法.

比如你的问题1 定义一个订单创建事件.在创建订单往消息队列发送订单创建消息.

定义一个订单创建消息处理,在这个事件中调用定时任务创建api(Hangfire的就一行代码).

60分钟后发送一个订单超时取消消息.

然后定义一个超时取消消息处理.这个业务就完了.

奖励园豆:5
吴瑞祥 | 高人七级 |园豆:28729 | 2017-03-24 16:27

我每一个需求都要创建一个新的消息队列吗?Hangfire不是.net使用的吗?java能不能用

dom树 | 园豆:4 (初学一级) | 2017-03-24 16:34

@dom树: 当然不是...消息处理平台肯定是一个固定的.你可以在消息里加个消息类型字段.

然后消息订阅的那边根据消息类型分发到制定的处理方法就行了.

框架不能用就换个别的.我这个思路的重点就是:定时任务只做一个事情.就是定时发送消息.

所有的业务都放到消息处理中.

吴瑞祥 | 园豆:28729 (高人七级) | 2017-03-24 16:36

@吴瑞祥: 好的,我去试试,谢谢

dom树 | 园豆:4 (初学一级) | 2017-03-24 16:37
其他回答(1)
1

当然是job咯,配合cron走

Daniel Cai | 园豆:10374 (专家六级) | 2017-03-24 16:15

什么cron

支持(0) 反对(0) dom树 | 园豆:4 (初学一级) | 2017-03-24 16:17

谢谢,知道了

支持(0) 反对(0) dom树 | 园豆:4 (初学一级) | 2017-03-24 16:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册