项目背景
A银行与A电商合作推出一新类型的信用卡,这种卡一般叫联名卡。为什么叫联名卡呢,其实就是银行与其它机构联名发行的信用卡,卡面上有银行的标志也有第三方机构的标志,如果是航空联名卡,卡面上一般还有你在航空公司的会员号。套用我们佳姐的说法,这也是一种引流与吸粉的手段。对于银行来说你来办信用卡,办完就是某电商的会员了,还有折扣,是不是很心动;对于电商来说更乐意了,把银行的真实客户引流到电商,这是一件互惠互利的事情。
需求概述
客户在申请信用卡时,会选择带有A电商类型的卡面。需要将该部分数据每日筛选出来。依据电商系统要求,将数据同步到电商。
流程看起来是这样子的:
我们要做的事情也就是紫色的4步:
1、筛选信用卡数据要求:
- 只需要卡面为A电商的的数据
- 数据要包含卡号以及客户手机号
- 客户首次申请信用卡、手机号发生变化、信用卡注销三种情况,才将数据送电商。首次标志位A,变化为U,注销标志为D
2、将数据送电商
- 采用HTTP形式将数据传送电商
- 电商每次接收的数据只能50笔
- 考虑到数据安全性,需要对数据签名
3、电商处理结果也有三种情况
- 处理成功
- 处理失败,业务依据失败原因线下处理
- 处理未名,与电商联系,确认是否重发
4、将数据以报表形式呈现
- 每日的形式显示当日总共传输了多少数据,多少成功,多少失败,多少未名
- 点击汇总数据,能看到每一笔的明细,其中未名的可以勾选重新传输
总体设计
1、首先我们需要设计一调度线程,将数据筛选与数据发送串起来
2、接收通知我们计划采取轮询方式,每5分钟轮询一次数据库,如果轮询到发送通知则启动发送主线程
3、发送主线程主要做两件事:
- 将通知标记为已受理(否则第二次轮询又启动了,这也叫防重。防重这个意识在银行IT领域特别重要)
- 依据任务类型启动发送线程
4、发送线程
1、数据库把数据筛选出来,50笔作为一个JSON LIST送给电商
2、解析电商返回结果,并将结果插入数据库
3、所有数据发送完毕后,将通知标记为已完成
今天先分析到这里,给大家留2个问题吧
1、从一张有1024笔数据的表中,怎么每次筛选50笔数据,并保证数据不重复不遗漏(嘿嘿,有篇文章讲过哦)
2、为什么解析电商返回结果后是将数据插入数据库,而不是将结果更新数据库呢?
原文地址:https://www.cnblogs.com/dagny/p/10238340.html
时间: 2024-10-15 22:22:52