一种基于文件的数据传输方法技术

技术编号:35025850 阅读:11 留言:0更新日期:2022-09-24 22:57
本发明专利技术涉及软件系统的数据传输领域,提供了一种基于文件的数据传输方法。解决现有技术中互联网应用业务系统在数据传输时,或多或少的会对系统的运行和稳定有所影响,存在无法将数据可靠无损的传输到目的地发可能性,且存在当系统瞬时产生大量数据时会影响业务系统的性能以及稳定运行的问题。本发明专利技术通过将数据写入缓存,对缓存进行判断,将缓存内的数据以文件的方式写入本地磁盘,然后将写入本地磁盘的文件内的数据data传送到目标机,然后目标机接收到数据data后,将数据data写入数据库,如失败,则将数据data以文件的方式写入本地磁盘,然后通过轮询任务将写入本地磁盘的文件内的data数据写入数据库,这样解决了当海量数据涌入缓存,导致系统故障的问题。导致系统故障的问题。导致系统故障的问题。

【技术实现步骤摘要】
一种基于文件的数据传输方法


[0001]本专利技术涉及软件系统的数据传输领域,提供了一种基于文件的数据传输方法。

技术介绍

[0002]数据传输一直是软件行业的重要内容,关于数据传输的方案也层出不穷,常见的有直接通过网络将数据传输给目标系统,也有通过将消息中间件作为桥接,现将消息发送至消息中间件,目标系统再消费消息中间件消息的方式发送消息。
[0003]直接通过网络传输给目标系统会受限于网路带宽和接收系统的处理能力,如果网络带宽比较小或者目标系统接收能力有限,则发送端必然会降低吞吐量,如果发送端是重要业务系统,则可能会导致业务系统的处理能力降低,导致生产事故。
[0004]通过消息中间件作为桥接的方式处理消息,虽然可以提高吞吐量,但这种方式需要消息发送和接收方都需要对接消息中间件,无形中增加了系统复杂度,同时消息中间件的可靠性也会成为其中的关键一环。
[0005]目前在互联网应用业务系统在实际使用中会会产生大量的数据,这些数据最开始都是缓存在内存里,并通过互联网进行传输到其他系统并进行存储,特别是互联网应用业务系统会出现瞬时产生大量数据,当这些数据未被及时处理,时将会内存的缓存部分将会溢出,造成系统故障,且现有技术中互联网应用业务系统在数据传输时,或多或少的会对系统的运行和稳定有所影响,存在无法将数据可靠无损的传输到目的地发可能性,且存在当系统瞬时产生大量数据时会影响业务系统的性能以及稳定运行。
[0006]现有技术中当海量数据涌入缓存,业务系统无法处理时,则会出现业务系统拒绝服务的问题。

技术实现思路

[0007]本专利技术的目的在于解决现有技术中互联网应用业务系统在数据传输时,或多或少的会对系统的运行和稳定有所影响,存在无法将数据可靠无损的传输到目的地发可能性,且存在当系统瞬时产生大量数据时会影响业务系统的性能以及稳定运行的问题。
[0008]为了实现上述目的本专利技术采用以下技术手段:
[0009]一种基于文件的数据传输方法,文件接收系统与业务系统部署在不同的服务器上,包括以下步骤:
[0010]业务系统数据处理主流程:
[0011]将业务系统数据写入缓存,启用缓存定时清理任务,同时当缓存数据的数据量满足阈值条件,调用序列号生成流程获取当前时间序列号seq,将缓存数据以文件名“年月日时分秒+seq.dat”写入业务系统所在的本地磁盘的目录D;
[0012]缓存定时清理任务:
[0013]定时轮询,判断缓存中是否有数据,如有数据,则调用序列号生成流程获取当前时间序列号seq,将缓存数据以文件名“年月日时分秒+seq.dat”写入业务系统所在的本地磁
盘;
[0014]序列号生成流程:
[0015]用于在规定时间段内生成唯一的当前时间序列号seq,所述规定时间段为1秒或者1毫秒;
[0016]文件扫描任务流程:
[0017]扫描目录D,获得后缀名为.dat的文件列表,并将文件句柄放入列表List,遍历List,将List中文件句柄对应文件的后缀名改为.data.sync;
[0018]磁盘文件处理系统:
[0019]扫描目录D,获取目录D下所有以.data.sync为后缀名的文件句柄列表,并赋值给变量L,遍历变量L,读取文件句柄对应的.data.sync文件的数据data,数据data发送到文件数据接收系统。
[0020]文件数据接收系统:
[0021]启动磁盘数据文件入库处理任务,同时接收磁盘数据文件处理发送过来的数据data存入缓存,并解析之后写入数据库,如果写入成功,则流程结束,否则,调用序列号生成流程获取当前时间序列号seq,将缓存数据以文件名“年月日时分秒+seq.dat”保存至文件数据接收系统所在的本地磁盘B的目录Dir:
[0022]磁盘数据文件入库处理任务
[0023]扫描目录Dir,将Dir目录下所有后缀名为.dat的文件句柄放入L,遍历L,读取文件句柄对应的.dat的文件中的数据data,将数据data写入数据库,如果写入成功,则删除目录Dir中文件句柄对应的.dat文件。
[0024]上述技术方案中,序列号生成流程包括以下步骤:
[0025]步骤3.1:定义全局静态变量lastTime,其初始值为当前时间,精确到秒;
[0026]步骤3.2:定义全局静态变量seq,其初始值为0;
[0027]步骤3.3:获取锁L;
[0028]步骤3.2:获取当前时间t,精确到秒;
[0029]步骤3.4:如果t等于lastTime,则行步骤3.4.1,否则执行3.5;
[0030]步骤3.4.1:将seq的值加1,如果seq值大于10000,则seq值重置为0,否则执行步骤3.5;
[0031]步骤3.5:将lastTime值设置为t;
[0032]步骤3.6:释放锁L。
[0033]上述技术方案中,业务系统数据处理主流程具体包括:
[0034]步骤1.1:定义全局缓存变量C,定义数据将要写入的业务系统所在的本地磁盘的目录;
[0035]步骤1.2:启动缓存定时清理任务,该任务为定时循环任务,且该任务为单独的线程执行;
[0036]步骤1.3:获得缓存C的锁L,接着将业务系统的数据写入缓存C;
[0037]步骤1.5:判断缓存C中的数据量是否满足写入磁盘的条件,如果是,则调用流程1.5.1,否则执行1.6
[0038]步骤1.5.1:则调用序列号生成流程,获取当前时间序列号seq;
[0039]步骤1.5.2:在目录D中创建文件,并将文件命名为年月日时分秒+seq.tmp,该文件此时是一个空文件;
[0040]步骤1.5.3:将缓存C中的数据写入.tmp文件;
[0041]步骤1.5.4:缓存C中的数据写完之后,将.tmp文件的后缀名改为.dat
[0042]步骤1.5.5:清空缓存C;
[0043]步骤1.6:释放缓存锁L。
[0044]上述技术方案中,缓存定时清理任务包括以下步骤:
[0045]步骤2.1:获取缓存C的锁L;
[0046]步骤2.2:判断缓存C中是否有数据,如果有,则执行步骤2.2.1,否则,执行步骤2.3;
[0047]步骤2.2.1:调用步骤3序列号生成流程,获取当前时间序列号seq;
[0048]步骤2.2.2:在目录D中创建文件,并将文件命名为:年月日时分秒+seq.tmp;
[0049]步骤2.2.3:将缓存C中的数据写入.tmp文件;
[0050]步骤2.2.4:将.tmp文件后缀名重命名为.dat;
[0051]步骤2.2.5:清空缓存C;
[0052]步骤2.3:释放缓存锁L。
[0053]上述技术方案中,磁盘文件处理系统包括以下步骤:
[0054]步骤4.1:启动文件扫描任务,该任务为定时本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于文件的数据传输方法,文件接收系统与业务系统部署在不同的服务器上,其特征在于,包括以下步骤:业务系统数据处理主流程:将业务系统数据写入缓存,启用缓存定时清理任务,同时当缓存数据的数据量满足阈值条件,调用序列号生成流程获取当前时间序列号seq,将缓存数据以文件名“年月日时分秒+seq.dat”写入业务系统所在的本地磁盘的目录D;缓存定时清理任务:定时轮询,判断缓存中是否有数据,如有数据,则调用序列号生成流程获取当前时间序列号seq,将缓存数据以文件名“年月日时分秒+seq.dat”写入业务系统所在的本地磁盘;序列号生成流程:用于在规定时间段内生成唯一的当前时间序列号seq,所述规定时间段为1秒或者1毫秒;文件扫描任务流程:扫描目录D,获得后缀名为.dat的文件列表,并将文件句柄放入列表List,遍历List,将List中文件句柄对应文件的后缀名改为.data.sync;磁盘文件处理系统:扫描目录D,获取目录D下所有以.data.sync为后缀名的文件句柄列表,并赋值给变量L,遍历变量L,读取文件句柄对应的.data.sync文件的数据data,数据data发送到文件数据接收系统。文件数据接收系统:启动磁盘数据文件入库处理任务,同时接收磁盘数据文件处理系统发送过来的数据data存入缓存,并解析之后写入数据库,如果写入成功,则流程结束,否则,调用序列号生成流程获取当前时间序列号seq,将缓存数据以文件名“年月日时分秒+seq.dat”保存至文件数据接收系统所在的本地磁盘B的目录Dir;磁盘数据文件入库处理任务扫描目录Dir,将Dir目录下所有后缀名为.dat的文件句柄放入L,遍历L,读取文件句柄对应的.dat的文件中的数据data,将数据data写入数据库,如果写入成功,则删除目录Dir中文件句柄对应的.dat文件。2.根据权利要求1所述的一种基于文件的数据传输方法,其特征在于,序列号生成流程包括以下步骤:步骤3.1:定义全局静态变量lastTime,其初始值为当前时间,精确到秒;步骤3.2:定义全局静态变量seq,其初始值为0;步骤3.3:获取锁L;步骤3.2:获取当前时间t,精确到秒;步骤3.4:如果t等于lastTime,则行步骤3.4.1,否则执行3.5;步骤3.4.1:如果seq值大于10000,则seq值重置为0,否则执行步骤3.5;步骤3.5:将lastTime值设置为t;步骤3.6:释放锁L。3.根据权利要求2所述的一种基于文件的数据传输方法,其特征在于,业务系统数据处
理主流程具体包括:步骤1.1:定义全局缓存变量C,定义数据将要写入的业务系统所在的本地磁盘的目录;步骤1.2:启动缓存定时清理任务,该任务为定时循环任务,且该任务为单独的线程执行;步骤1.3:获得缓存C的锁L,接着将业务系统的数据写入缓存C;步骤1.5:判断缓存C中的数据量是否满足写入磁盘的条件,如果是,则调用流程1.5.1,否则执行1.6步骤1.5.1:则调用序列号生成流程,获取当前时间序列号seq;步骤1.5.2:在目录D中创建文件,并将文件命名为年月日时分秒+...

【专利技术属性】
技术研发人员:张路路程峰李耀彭磊刘珏
申请(专利权)人:武汉众邦银行股份有限公司
类型:发明
国别省市:

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

1