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