分期还款服务(步骤4)-自动充值开发流程图-V1.1.0
2020-01-17 10:02:03 1 举报
分期还款服务(步骤4)-自动充值开发流程图,支持手动还款、自动还款、逾期还款、一次性提前结清,服务高可用、业务具有高容错性
作者其他创作
大纲/内容
轮询已激活消息
否
是否减额充值
并行
结束
是
数据库
自动充值事务补偿开发流程
新增充值消息
请求自动充值
事务回滚
是否充值中
请求自动充值后开发流程
更新消息状态为『充值中』以及记录更新时间
消息淘汰阶段
*更新所影响的记录数等于1则表示成功。
还款服务
更新充值状态为『充值成功』
异步邮件通知开发人员(带上消息标识及业务标识)
开发人员处理
其它还款子流程
数据轮询规则:1、每隔1分钟的第16秒、第46秒分别执行一次。数据轮询条件:1、消息状态为『激活充值』。2、取一定范围内的消息。*按逻辑标识升序排序。
触发消息队列重试机制
是否充值成功
是否请求成功
更新充值状态为『充值失败-其它原因』
1、淘汰过期的充值消息2、充值异常预警3、防止用户充值超额
是否逾期还款
计算新的充值金额
异步邮件通知运营人员(带上消息标识及业务标识)
轮询用户账户
更新充值状态为『充值失败-余额不足』
是否余额不足
是否数据库异常
*网络请求响应状态码为200则视为成功,即无网络异常。
是否重试
*仅以惟一标识作为更新条件。
逾期还款子流程
是否重复充值
是否成功
保存通知消息
否定减额充值的条件:1、当前期供当日『充值失败-余额不足』的次数(算上本次)小于阈值(可配置,比如2次)。
保存消息到数据库死信队列
是否更新成功
*以惟一标识+状态『激活充值』作为更新条件。
开始
运营人员处理(成功后更新消息状态)
*更新无异常并且更新所影响的记录数等于1则表示成功。
本地记录日志(异常信息及MsgId)
终止重试条件:1、是否达到最大重试次数。
*如果当前期供三日内『充值失败-余额不足』最小的金额的50%大于阈值金额,(用于防止额度过小,可配置,比如20元),则使用此金额,否则使用当前充值金额的50%。
*设置充值消息状态为『激活充值』(无法严格保证不会被置为『放弃充值』,导致足额充值,但这不重要,不会影响下次余额不足的减额计算,同时达到随机尝试足额充值)的目的。
自动充值开发流程
是否异常
*以惟一标识+状态『充值中』作为更新条件。
消息队列
数据轮询规则:1、在每日4时、15时的第0分钟执行一次。2、在每日20时至23时之间,每隔1小时的第0分钟执行一次。数据轮询条件:1、消息状态为『未充值』。2、取一定范围内的用户账户。*按用户账户分组、排序。
数据库死信队列
0 条评论
下一页