定购信息处理方法技术

技术编号:3493313 阅读:208 留言:0更新日期:2012-04-11 18:40
定购信息处理方法,对于下发的订购信息报文进行本地保存,采用Apache+WebLogic的集群策略来进行控制处理,支撑业务的负载均衡及故障兼容,Apache架于前端,配置Apache将请求分发到后端的WebLogic的集群上面,并配置Apache的请求分发权重:(1)定购信息接收:接收、校验外部的定购信息请求,将请求保存到本地,用文件方式记录接收到文件的时间等日志信息;(2)定购信息入中间库:将请求文件按其接收时间排序,从时间最早的文件包开始处理,处理成功将文件包搬迁,失败则返回重新处理或由管理员人工处理;(3)定购信息入最终资料库:采用分通道的快速处理。

【技术实现步骤摘要】

本专利技术涉及大量外部定购信息的处理,是一种。
技术介绍
订购关系是无线一级BOSS项目中的一项集团考核的难点,比如天津这样的省份, 每天要处理20万左右的订购关系信息,对于用户数更为多的省份,处理的业务量更加 的大,每个用户的订购信息如果出现了偏差,那么将来差异性会越差越大,所以处理系 统最为重要的一个指标便是系统的稳定性,高性能的处理能力及严谨的处理逻辑。
技术实现思路
本专利技术要解决的技术问题是针对较大的交易数据量,提供一种快速稳定的定购信 息处理方法。本专利技术的技术方案是,对于下发的订购信息报文进行本地保存,采用Apache + WebLogic的集群策略来进行控制处理,支撑业务的负载均衡及故障兼容, Apache架于前端,配置Apache将请求分发到后端的WebLogic的集群上面,并配置 Apache的请求分发权重,系统处理不依靠数据库,具体为(1) 定购信息接收接收、校验外部的定购信息请求,将请求保存到本地,用文 件方式记录接收到文件的时间等日志信息;(2) 定购信息入中间库将请求文件按其接收时间排序,从时间最早的文件包开 始处理,处理成功将文件包搬迁,失败则返回重新处理或由管理员人工处理;(3) 定购信息入最终资料库采用分通道的快速处理,生产者线程从搬迁的文件 包中获取数据,将数据分通道排列在数据池,多个消费者线程从数据池获取数据进行处 理。为了提高后台处理性能,封装生产者和消费者线程来进行业务调用,生产者线程采 集数据放入共享队列中,队列相当于通道,队列中的数据依据逻辑进行排队,启动多个 消费者线程,消费者线程从共享队列里面获取数据,来进行快速处理。本专利技术定购信息入中间库处理时设定允许失败次数,小于允许失败次数返回重新处 理,大于允许失败次数短信通知管理员人工处理。本专利技术前端取消数据库支撑,保证BOSS系统对外的影响最小,将数据保存下来之 后,采用严谨的程序逻辑处理过程,来保证数据的正确入库,分通道的设计,保证在数 据在不同的线程之中,不会因为线程的运行的不确定性而导致最终结果的不正确性,并 用生产、消费者线程大大提高了业务的快速处理。附图说明图1是本专利技术硬件的部署结构图。图2是本专利技术定购信息接收流程图。图3是本专利技术定购信息入中间库流程图。 图4是本专利技术定购信息入最终资料库流程图。具体实施方式针对需要稳定的支撑订购关系业务,需要对于中心下发的订购关系报文进行保存, 并且系统的处理不依靠数据库。对于交易在BOSS内部的处理使用排序,对大量数据进 行快速排重等方案进行过滤。并对大量的数据采用多线程,分通道的方式进行正确、快 速的逻辑处理。本专利技术对于下发的订购信息报文进行本地保存,针对较大的交易数据量,采用 Apache + WebLogic的集群策略来进行控制处理,支撑业务的负载均衡及故障兼容, Apache架于前端,配置Apache将请求分发到后端的两台WebLogic的集群上面,并配 置Apache的请求分发权重,系统处理不依靠数据库,具体为(1) 定购信息接收接收、校验外部的定购信息请求,将请求保存到本地,用文 件方式记录接收到文件的时间等日志信息;(2) 定购信息入中间库将请求文件按其接收时间排序,从时间最早的文件包开 始处理,处理成功将文件包搬迁,失败则返回重新处理或由管理员人工处理;(3) 定购信息入最终资料库采用分通道的快速处理,生产者线程从搬迁的文件 包中获取数据,将数据分通道排列在数据池,多个消费者线程从数据池获取数据进行处 理。本专利技术定购信息入中间库处理时设定允许失败次数,小于允许失败次数返回重新处 理,大于允许失败次数短信通知管理员人工处理。由于对方所下发的大量数据中,存在逻辑并不正确的交易,系统实现了内存中通过 时间排序过滤逻辑不正确的数据,对大量的文件交易进行排序处理。对于人量的用户信息入库,根据逻辑关键字进行分组,分通道的快速处理。以保证 能够在规定的时间范围内,将用户的最新信息反映到BOSS中,为了提高后台处理性能, 封装生产者,消费者线程来进行业务调用,生产者线程采集对象放入共享队列中,队列 相当于通道,队列中的数据依据逻辑进行排队,启动多个消费者线程,消费者线程从共 享队列里面获取数据,来进行快速处理。 封装生产者和消费者线程来进行业务调用的具体例子 1 、首先UDRProcControlTHD线程控制生产者和消费者子线程的启停。 public void doOnStartO {DBBean dbBean = null; try {dbBean = DBBeanFactory.getDBBean丁hroghJndi(); dbBean.executeUpdate(sql); } catch (Exception ex) {CoreLogger.getLogger(CoreLogger.LOGGER TYPE_INFO).error( T + className + "]更新数据同步中间表出错",ex);} finally {dbBean.clean();super.doOnStart(》 public void doOnExit() {stopJobThds(getlobThds》〃处理线程对应于相应的Data Pool的LinkedList对象,如果某个Data Pool里面没有了数据, 则将对应的处理线程置退出标志List; if (!singleList.isEmpty(》{ hasDataNotDeal = true; break; J else {if (!doJobThds.getIsExit()) stopJobThd(doJobThds);try {list.wait(5 * 1000); J catch (InterruptedException ex) {stop〗obThds(do JobThds);2、 UDRGetiobTHD为任务获取线程,用来启动实际的获取程序 public class UDRGetJobTHD extends MULTIDoJobTh(Upublic UDRGetJobTHD() { init(); private void init() { ThdProcessImpl thdProcess 二 new UDRGetJobProcessor(); thdProcess,setMultiIDoJobThd(this); setThdProcessor(thdProcess);3、 UDRProcTHD为任务处理线程,用来启动实际的处理程序 public class UDRProcTHD extends MULTIDoJobThd{*默认构造器 承/public UDRProcTHD() { init(); private void init() {ThdProcessImpl thdProcess = new UDRProcProcessor();thdProcess.setMultiIDoJobThd(this);setThdProcessor(thdProcess);4、 UDRGetJobProcessor获取业务对象放到共享队列里面,并根据手机号码取模放入到 对应队列里面。public cla本文档来自技高网...

【技术保护点】
定购信息处理方法,其特征是对于下发的订购信息报文进行本地保存,采用Apache+WebLogic的集群策略来进行控制处理,支撑业务的负载均衡及故障兼容,Apache架于前端,配置Apache将请求分发到后端的WebLogic的集群上面,并配置Apache的请求分发权重,系统处理不依靠数据库,具体为:(1)定购信息接收:接收、校验外部的定购信息请求,将请求保存到本地,用文件方式记录接收到文件的时间等日志信息;(2)定购信息入中间库:将请求文件按其接收时间排序,从时间最早的文件包开始处理,处理成功将文件包搬迁,失败则返回重新处理或由管理员人工处理;(3)定购信息入最终资料库:采用分通道的快速处理,生产者线程从搬迁的文件包中获取数据,将数据分通道排列在数据池,多个消费者线程从数据池获取数据进行处理。

【技术特征摘要】

【专利技术属性】
技术研发人员:林诰杭国民曹磊王伯承
申请(专利权)人:南京联创科技集团股份有限公司
类型:发明
国别省市:84[中国|南京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1