System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及大数据领域,可以用于金融领域,具体是一种基于数据库客户端的批量供数方法及装置。
技术介绍
1、目前,金融票据系统的批量处理框架一般基于数据库实现,具体是使用工具与数据库交互。生成文件使用在数据库中定义的存储过程读取dba_directory目录,在数据库上使用utl_file.put(file_handle,v_string);utl_file.fflush(file_handle);及utl_file.fclose(file_handle);实现文件打开、文件写入及文件关闭的操作。
2、其中,文件生成在数据库上,批量机器要使用nfs等方式把数据库的数据盘挂载到批量机器上。当文件在数据库上生成后,批量机通过共享目录可以看到生成的文件,进而进行文件处理与文件发送。
3、文件生成过程中的并发机制采取固定并发数的方式运行。批量shell中循环检查并发进程。当并发数小于预设值时,逐个增加并发直到到达并发上限。
4、目前,票据系统批量供数框架至少存在如下问题:
5、第一,供数逻辑通过数据库的存储过程实现,不利于存算分离目标的实现。
6、第二,文件生成在数据库上,批量机器要使用nfs等方式把数据库的数据盘挂载到批量机器上。当文件在数据库上生成后,批量机器通过共享目录可以看到生成的文件,进而进行文件处理与文件发送。但nfs的挂载方式缺乏高可用机制,nfs共享盘故障会影响批量文件的发送。
7、第三,文件生成过程中的并发机制采取固定并发数的方式运行。批量shell中
技术实现思路
1、针对现有技术中的问题,本申请提供一种基于数据库客户端的批量供数方法及装置,能够在批量机上生成供数文件,增加智能并发控制,进而在负载安全的情况下尽可能高地利用资源并发生成文件,达到去存储过程的目标。
2、为解决上述技术问题,本申请提供以下技术方案:
3、第一方面,本申请提供一种基于数据库客户端的批量供数方法,包括:
4、获取预先建立的导出文件信息配置表、导出目录配置表及导出文件运行状态表;
5、根据所述导出文件信息配置表、导出目录配置表及导出文件运行状态表执行文件导出操作,以生成导出文件;其中,所述执行文件导出操作在批量机执行;
6、根据所述导出目录配置表发送所述导出文件至下游业务系统。
7、进一步地,在根据所述导出文件信息配置表、导出目录配置表及导出文件运行状态表执行文件导出操作之前,还包括:
8、根据所述出文件信息配置表、导出目录配置表及导出文件运行状态表调度生成数据文件脚本;
9、利用所述生成数据文件脚本进行文件导出初始条件检测。
10、进一步地,所述获取预先建立的导出文件信息配置表、导出目录配置表及导出文件运行状态表,包括:
11、获取所述导出文件信息配置表中的第一数据项;其中,所述第一数据项包括批量日期、作业状态、错误信息及批量场次;
12、获取所述导出目录配置表中的第二数据项;其中,所述第二数据项包括供数逻辑、文件路径、有效标志及批量场次;
13、获取所述导出文件运行状态表中的第三数据项;其中,所述第三数据项包括目录名及目录路径。
14、进一步地,所述根据所述导出文件信息配置表、导出目录配置表及导出文件运行状态表执行文件导出操作,以生成导出文件,包括:
15、检测各批量场次的导出作业是否执行完成;
16、若未执行完成,则确定所述导出作业对应的进程数;
17、根据确定的进程数执行并发文件导出操作,以生成所述导出文件;
18、将所述导出文件的导出情况更新所述导出作业表的作业状态;其中,所述作业状态包括待执行、执行中、执行成功及执行失败。
19、进一步地,所述根据确定的进程数执行并发文件导出操作,包括:
20、若所述确定的进程数大于或等于预设的最大并发数,则等待多个周期,直至所述确定的进程数小于所述最大并发数后,调用批量机的拷贝命令执行所述并发文件导出操作;
21、若所述确定的进程数小于所述最大并发数,则调起执行复制脚本,调用批量机的拷贝命令执行所述并发文件导出操作;其中,在执行所述并发文件导出操作时,进行并发控制,监测已启动线程数及中央处理器空闲率。
22、进一步地,所述根据所述导出目录配置表发送所述导出文件至下游业务系统,包括:
23、利用文件发送脚本复制所述导出文件至所述导出目录配置表记载的发送目录中;
24、将所述发送目录中的所述导出文件发送至所述下游业务系统。
25、第二方面,本申请提供一种基于数据库客户端的批量供数装置,包括:
26、表单获取单元,用于获取预先建立的导出文件信息配置表、导出目录配置表及导出文件运行状态表;
27、文件导出单元,用于根据所述导出文件信息配置表、导出目录配置表及导出文件运行状态表执行文件导出操作,以生成导出文件;其中,所述执行文件导出操作在批量机执行;
28、文件发送单元,用于根据所述导出目录配置表发送所述导出文件至下游业务系统。
29、进一步地,基于数据库客户端的批量供数装置,还包括:
30、文件脚本调度单元,用于根据所述出文件信息配置表、导出目录配置表及导出文件运行状态表调度生成数据文件脚本;
31、初始条件检测单元,用于利用所述生成数据文件脚本进行文件导出初始条件检测。
32、进一步地,所述表单获取单元,包括:
33、第一获取模块,用于获取所述导出文件信息配置表中的第一数据项;其中,所述第一数据项包括批量日期、作业状态、错误信息及批量场次;
34、第二获取模块,用于获取所述导出目录配置表中的第二数据项;其中,所述第二数据项包括供数逻辑、文件路径、有效标志及批量场次;
35、第三获取模块,用于获取所述导出文件运行状态表中的第三数据项;其中,所述第三数据项包括目录名及目录路径。
36、进一步地,所述文件导出单元,包括:
37、完成检测模块,用于检测各批量场次的导出作业是否执行完成;
38、进程数量确定模块,用于若未执行完成,则确定所述导出作业对应的进程数;
39、导出文件生成模块,用于根据确定的进程数执行并发文件导出操作,以生成所述导出文件;
40、作业状态更新模块,用于将所述导出文件的导出情况更新所述导出作业表的作业状态;其中,所述作业状态包括待执行、执行中、执行成功及执行失败。
41、进一步地,所述导出文件生成模块,包括:
42、等待执行模块,用于本文档来自技高网...
【技术保护点】
1.一种基于数据库客户端的批量供数方法,其特征在于,包括:
2.根据权利要求1所述的基于数据库客户端的批量供数方法,其特征在于,在根据所述导出文件信息配置表、导出目录配置表及导出文件运行状态表执行文件导出操作之前,还包括:
3.根据权利要求1所述的基于数据库客户端的批量供数方法,其特征在于,所述获取预先建立的导出文件信息配置表、导出目录配置表及导出文件运行状态表,包括:
4.根据权利要求1所述的基于数据库客户端的批量供数方法,其特征在于,所述根据所述导出文件信息配置表、导出目录配置表及导出文件运行状态表执行文件导出操作,以生成导出文件,包括:
5.根据权利要求1所述的基于数据库客户端的批量供数方法,其特征在于,所述根据确定的进程数执行并发文件导出操作,包括:
6.根据权利要求1所述的基于数据库客户端的批量供数方法,其特征在于,所述根据所述导出目录配置表发送所述导出文件至下游业务系统,包括:
7.一种基于数据库客户端的批量供数装置,其特征在于,包括:
8.一种电子设备,包括存储器、处理器及存储在存储
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6任一项所述的基于数据库客户端的批量供数方法的步骤。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至6任一项所述的基于数据库客户端的批量供数方法的步骤。
...【技术特征摘要】
1.一种基于数据库客户端的批量供数方法,其特征在于,包括:
2.根据权利要求1所述的基于数据库客户端的批量供数方法,其特征在于,在根据所述导出文件信息配置表、导出目录配置表及导出文件运行状态表执行文件导出操作之前,还包括:
3.根据权利要求1所述的基于数据库客户端的批量供数方法,其特征在于,所述获取预先建立的导出文件信息配置表、导出目录配置表及导出文件运行状态表,包括:
4.根据权利要求1所述的基于数据库客户端的批量供数方法,其特征在于,所述根据所述导出文件信息配置表、导出目录配置表及导出文件运行状态表执行文件导出操作,以生成导出文件,包括:
5.根据权利要求1所述的基于数据库客户端的批量供数方法,其特征在于,所述根据确定的进程数执行并发文件导出操作,包括:
6.根据权利...
【专利技术属性】
技术研发人员:许承飞,刘姗姗,胡康宁,
申请(专利权)人:中国工商银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。