System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及大数据,可用于金融领域或其他领域,更具体地涉及一种批量作业的处理方法、装置、设备、介质和程序产品。
技术介绍
1、当批量作业的数据量、处理量比较大时,通常会将批量作业拆分成多个分片作业并行处理,其中每个分片作业由一个任务处理。其中,在将批量作业拆分时,现有技术中主要是通过预先配置的方式划分出每个分片作业中的具体作业。目前一般采用指定不同分片处理不同数据分区或序号段中的作业方式,来预先分配每个分片作业处理的作业范围。
2、专利技术人在实现本专利技术构思的过程中发现,现有技术中通过预先配置的方式进行批量作业拆分,存在如下缺点:1)批量作业在数据库中存储的作业的唯一标识序号,并不一定总是等差数列,例如交易作业的序号,可以是交易时间+递增序列号形成的,这样在交易高峰时段单位时间内的交易量就大,在交易低谷时段交易量就很少,这样如果按照预先配置的方式,容易导致不同分片的作业量不均。如果不同分片中分配到的作业量不均匀,会导致各个任务处理的作业量差异较大,不但会造成系统资源的浪费,而且还延长了作业整体执行时间;2)预先配置的方式需要人为参与,配置出错可能导致作业重复处理或漏处理。
技术实现思路
1、鉴于上述问题,本公开提供了一种批量作业的处理方法、装置、设备、介质和程序产品,可以提高并行处理批量作业的多个任务的负载均衡。
2、本公开实施例的第一方面,提供了一种批量作业的处理方法。该方法包括:分配用于处理批量作业的n个任务,其中,n为大于1的整数;控制所述n个任务以
3、根据本公开的实施例,所述确定所述当前批次作业中排在最末位的作业的唯一标识序号,以得到第一截止序号包括:从所述数据库中以所述第一起始序号所标识的作业为起始,按顺序读取作业,直到读取的作业的数量达到所述当前批次作业的预定作业数量或读取完所述批量作业的最后一个作业;以及以读取到的最后一个作业的唯一标识序号,作为所述第一截止序号。
4、根据还公开的实施例,在控制所述n个任务以排队的方式领取读序号锁之前,所述方法还包括:同步所述数据库中所述批量作业中的作业的唯一标识序号到所述缓存。其中,所述确定所述当前批次作业中排在最末位的作业的唯一标识序号,以得到第一截止序号包括:在所述缓存中从所述第一起始序号开始,读取与所述当前批次作业的预定作业数量相同数量的唯一标识序号;以及将读取出的排在最末位的唯一标识序号,作为所述第一截止序号。
5、根据本公开的实施例,在所述释放所述读序号锁之后,所述方法还包括:所述第一任务从所述数据库中读取从所述第一起始序号起、到所述第一截止序号止的所有作业,以读取到所述当前批次作业。
6、根据本公开的实施例,所述方法还包括:新增用于处理所述批量作业的s个任务,其中,s为大于或等于1的整数。所述控制所述n个任务以排队的方式领取读序号锁还包括:在新增所述s个任务后,控制所述s个任务和所述n个任务以排队的方式领取所述读序号锁。
7、根据本公开的实施例,所述利用所述第一截止序号更新所述缓存中的所述第二截止序号,并释放所述读序号锁还包括:当所述第一截止序号为所述批量作业的最后一个作业的唯一标识序号时,利用所述第一截止序号更新所述缓存中所述第二截止序号,并销毁所述读序号锁。
8、根据本公开的实施例,所述当前批次作业的预定作业数量由所述第一任务领取到所述读序号锁时分配给所述第一任务的计算资源来确定。
9、根据本公开的实施例,所述缓存为分布式缓存。
10、本公开实施例的第二方面,提供了一种批量作业的处理装置。该装置包括任务分配模块、锁分配模块和持锁操作模块。任务分配模块用于分配用于处理批量作业的n个任务,其中,n为大于1的整数。锁分配模块用于控制所述n个任务以排队的方式领取读序号锁。持锁操作模块用于当任意的第一任务领取到所述读序号锁时,授权所述第一任务执行如下操作:从指定的缓存中获取第二截止序号;根据所述批量作业中的作业在数据库中的唯一标识序号的排序,以所述第二截止序号所标识的作业的下一作业的唯一标识序号为第一起始序号,按照需要分配给所述第一任务的当前批次作业的预定作业数量,确定所述当前批次作业中排在最末位的作业的唯一标识序号,以得到第一截止序号;以及利用所述第一截止序号更新所述缓存中的所述第二截止序号,并释放所述读序号锁。所述锁分配模块还用于在所述第一任务处理完所述当前批次作业后,控制所述第一任务重新排队领取所述读序号锁。
11、本公开实施例的第三方面,提供了一种电子设备。所述电子设备包括:一个或多个处理器和存储装置。所述存储装置用于存储一个或多个计算机程序。其中,所述一个或多个处理器执行所述一个或多个计算机程序以实现上述第一方面提供的方法的步骤。
12、本公开实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现上述第一方面提供的方法的步骤。
13、本公开实施例的第五方面,提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现上述第一方面提供的方法的步骤。
14、上述一个或多个实施例具有如下有益效果或优点:通过控制n个任务循环排队领取读序号锁,领取到读序号锁的任务查询当前可以分配给自己的作业的起始序号和截止序号,从而避免了预先配置n个任务所处理的作业范围的方式中存在的各种问题(如遗漏、配置错误或负载不均衡),而且可以对n个任务以循环的方式一批一批地分配作业,其中,控制每个任务执行完分配的作业后重新排队领取读序号锁,以此来获得新一批次的作业,这样可以最大限度地利用各任务的系统资源,提高各任务的负载均衡,减少批量作业的整体执行时间。
本文档来自技高网...【技术保护点】
1.一种批量作业的处理方法,包括:
2.根据权利要求1所述的方法,其中,所述确定所述当前批次作业中排在最末位的作业的唯一标识序号,以得到第一截止序号包括:
3.根据权利要求1所述的方法,其中,在控制所述N个任务以排队的方式领取读序号锁之前,所述方法还包括:
4.根据权利要求3所述的方法,其中,在所述释放所述读序号锁之后,所述方法还包括:
5.根据权利要求1所述的方法,其中,
6.根据权利要求1所述的方法,其中,所述利用所述第一截止序号更新所述缓存中的所述第二截止序号,并释放所述读序号锁还包括:
7.根据权利要求1所述的方法,其中,所述当前批次作业的预定作业数量由所述第一任务领取到所述读序号锁时分配给所述第一任务的计算资源来确定。
8.根据权利要求1所述的方法,其中,所述缓存为分布式缓存。
9.一种批量作业的处理装置,包括:
10.一种电子设备,包括:
11.一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现权利要求1~8中任一项所
12.一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1~8中任一项所述方法的步骤。
...【技术特征摘要】
1.一种批量作业的处理方法,包括:
2.根据权利要求1所述的方法,其中,所述确定所述当前批次作业中排在最末位的作业的唯一标识序号,以得到第一截止序号包括:
3.根据权利要求1所述的方法,其中,在控制所述n个任务以排队的方式领取读序号锁之前,所述方法还包括:
4.根据权利要求3所述的方法,其中,在所述释放所述读序号锁之后,所述方法还包括:
5.根据权利要求1所述的方法,其中,
6.根据权利要求1所述的方法,其中,所述利用所述第一截止序号更新所述缓存中的所述第二截止序号,并释放所述读序号锁还包括:
【专利技术属性】
技术研发人员:苏泽华,廖宸,欧乾君,林露蕃,
申请(专利权)人:中国工商银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。