作业多线程运行方法、装置和电子设备制造方法及图纸

技术编号:37957162 阅读:7 留言:0更新日期:2023-06-30 09:30
本申请提供了一种作业多线程运行方法、装置和电子设备,包括:构建执行控制单元,执行控制单元用于维护执行线程池中正在运行的分片计数值,正在运行的分片计数值包括执行线程池中正在被执行的分片数量和等待被执行的分片数量,在一个分片被成功提交至执行线程池的情况下,正在运行的分片计数值加一,在执行线程池中的一个分片执行完成之后,正在运行的分片计数值减一;根据正在运行的分片计数值,生成暂停消费消息指令和恢复消费消息指令,暂停消费消息指令用于控制执行线程池中的执行线程暂停消费新的分片,恢复消费消息指令用于控制执行线程池中的执行线程恢复消费新的分片。该方法解决了现有技术中分片的多线程运行方式资源利用率不高的问题。资源利用率不高的问题。资源利用率不高的问题。

【技术实现步骤摘要】
作业多线程运行方法、装置和电子设备


[0001]本申请涉及多线程运行领域,具体而言,涉及一种作业多线程运行方法、装置和电子设备。

技术介绍

[0002]现有技术中的两种分片的多线程运行方式,第一种是利用消息消费线程池,让分片直接在消费线程中执行。这种方式存在的缺点是可能引起消息消费超时,因为实际情况中,一些分片由于数据量较大或者等待一些特定事件的触发执行时间可达十多分钟甚至超过半个小时,超过了一般消息队列设定的消息消费的最长时间,消息消费超时会引起消息重投,进而引起重复消费等问题。
[0003]第二种是创建单独的执行线程池,将分片从消费线程转到单独的执行线程中执行。这种方式当分片数量超过线程池容量时,必定存在一些分片因无法提交到执行线程而返回消费失败的情况。并且重试次数越多,重试间隔就越大,线程池出现空闲的时间就越长,所以这种方式的缺点是作业整体执行时间不可控,执行线程池资源利用率不高,作业执行效率低。

技术实现思路

[0004]本申请的主要目的在于提供一种作业多线程运行方法、装置和电子设备,以至少解决现有技术中的分片的多线程运行方式资源利用率不高的问题。
[0005]为了实现上述目的,根据本申请的一个方面,提供了一种作业多线程运行方法,包括:构建执行控制单元,所述执行控制单元用于维护执行线程池中正在运行的分片计数值,所述正在运行的分片计数值包括所述执行线程池中正在被执行的分片数量和等待被执行的分片数量,在一个分片被成功提交至所述执行线程池的情况下,所述正在运行的分片计数值加一,在所述执行线程池中的一个分片执行完成之后,所述正在运行的分片计数值减一;根据所述正在运行的分片计数值,生成暂停消费消息指令和恢复消费消息指令,所述暂停消费消息指令用于控制所述执行线程池中的执行线程暂停消费新的分片,所述恢复消费消息指令用于控制所述执行线程池中的执行线程恢复消费新的分片。
[0006]可选的,根据所述正在运行的分片计数值,生成暂停消费消息指令,包括:确定暂停阈值,所述暂停阈值为执行线程池容量和第一常数的乘积,所述执行线程池容量为所述执行线程池中的线程数量和线程队列长度之和;在所述正在运行的分片计数值大于或者等于所述暂停阈值的情况下,生成所述暂停消费消息指令。
[0007]可选的,根据所述正在运行的分片计数值,生成恢复消费消息指令,包括:确定恢复阈值,所述恢复阈值为执行线程池容量和第二常数的乘积,所述执行线程池容量为所述执行线程池中的线程数量和线程队列长度之和;在所述正在运行的分片计数值小于所述恢复阈值的情况下,生成所述恢复消费消息指令。
[0008]可选的,在根据所述正在运行的分片计数值,生成恢复消费消息指令之后,所述方
法还包括:控制新的分片被目标消费线程消费;控制所述目标消费线程将所述新的分片提交至所述执行线程池中的执行线程池队列;在所述新的分片在所述执行线程池队列中等待执行的过程中,控制所述执行线程池将等待执行指令返回至所述执行控制单元;在所述新的分片在所述执行线程池队列中被执行完成后,控制所述执行线程池将执行成功指令返回至所述执行控制单元。
[0009]可选的,在所述新的分片在所述执行线程池队列中等待执行的过程中,控制所述执行线程池将等待执行指令返回至所述执行控制单元,包括:在所述新的分片在所述执行线程池队列中等待执行的过程中,控制所述执行线程池将所述等待执行指令发送至所述目标消费线程,以控制所述目标消费线程将所述等待执行指令发送至所述执行控制单元;在所述新的分片在所述执行线程池队列中被执行完成后,控制所述执行线程池将执行成功指令返回至所述执行控制单元,包括:在所述新的分片在所述执行线程池队列中被执行完成后,控制所述执行线程池将所述执行成功指令发送至所述目标消费线程,以控制所述目标消费线程将所述执行成功指令发送至所述执行控制单元。
[0010]可选的,在控制所述目标消费线程将所述新的分片提交至所述执行线程池中的执行线程池队列之后,所述方法还包括:控制所述目标消费线程将消费成功消息返回至消息队列。
[0011]可选的,所述执行线程池中的多个所述执行线程分布在不同的执行机上。
[0012]可选的,所述暂停消费消息指令还用于控制消息队列暂停转发新的分片至所述执行线程池,所述恢复消费消息指令还用于控制所述消息队列恢复转发新的分片至所述执行线程池。
[0013]根据本申请的另一方面,提供了一种作业多线程运行装置,包括:构建单元,用于构建执行控制单元,所述执行控制单元用于维护执行线程池中正在运行的分片计数值,所述正在运行的分片计数值包括所述执行线程池中正在被执行的分片数量和等待被执行的分片数量,在一个分片被成功提交至所述执行线程池的情况下,所述正在运行的分片计数值加一,在所述执行线程池中的一个分片执行完成之后,所述正在运行的分片计数值减一;生成单元,用于根据所述正在运行的分片计数值,生成暂停消费消息指令和恢复消费消息指令,所述暂停消费消息指令用于控制所述执行线程池中的执行线程暂停消费新的分片,所述恢复消费消息指令用于控制所述执行线程池中的执行线程恢复消费新的分片。
[0014]根据本申请的另一方面,提供了一种电子设备,包括:一个或多个处理器,存储器,以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任意一种所述的作业多线程运行方法。
[0015]应用本申请的技术方案,上述作业多线程运行方法,首先构建执行控制单元,所述执行控制单元用于维护执行线程池中正在运行的分片计数值,所述正在运行的分片计数值包括所述执行线程池中正在被执行的分片数量和等待被执行的分片数量,在一个分片被成功提交至所述执行线程池的情况下,所述正在运行的分片计数值加一,在所述执行线程池中的一个分片执行完成之后,所述正在运行的分片计数值减一;之后根据所述正在运行的分片计数值,生成暂停消费消息指令和恢复消费消息指令,所述暂停消费消息指令用于控制所述执行线程池中的执行线程暂停消费新的分片,所述恢复消费消息指令用于控制所述
执行线程池中的执行线程恢复消费新的分片。该方法通过引入执行控制单元实现了执行线程池运行情况的主动反馈机制,并且基于该机制适时的做出暂停、恢复消费操作,从而在解决消费超时问题的同时,有效的避免了消息消费失败情况的发生,提升了执行线程池的资源利用率,从而提升了批处理作业的执行效率,解决了现有技术中分片的多线程运行方式资源利用率不高的问题。
附图说明
[0016]构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0017]图1示出了根据本申请的实施例中提供的一种执行作业多线程运行方法的移动终端的硬件结构框图;
[0018]图2示出了根据本申请的实施例提供的一种作业多线程运行方法的流程示意图;
[0019]图3示出了现有技术中分片直接在消费线程池中执行的示本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种作业多线程运行方法,其特征在于,包括:构建执行控制单元,所述执行控制单元用于维护执行线程池中正在运行的分片计数值,所述正在运行的分片计数值包括所述执行线程池中正在被执行的分片数量和等待被执行的分片数量,在一个分片被成功提交至所述执行线程池的情况下,所述正在运行的分片计数值加一,在所述执行线程池中的一个分片执行完成之后,所述正在运行的分片计数值减一;根据所述正在运行的分片计数值,生成暂停消费消息指令和恢复消费消息指令,所述暂停消费消息指令用于控制所述执行线程池中的执行线程暂停消费新的分片,所述恢复消费消息指令用于控制所述执行线程池中的执行线程恢复消费新的分片。2.根据权利要求1所述的方法,其特征在于,根据所述正在运行的分片计数值,生成暂停消费消息指令,包括:确定暂停阈值,所述暂停阈值为执行线程池容量和第一常数的乘积,所述执行线程池容量为所述执行线程池中的线程数量和线程队列长度之和;在所述正在运行的分片计数值大于或者等于所述暂停阈值的情况下,生成所述暂停消费消息指令。3.根据权利要求1所述的方法,其特征在于,根据所述正在运行的分片计数值,生成恢复消费消息指令,包括:确定恢复阈值,所述恢复阈值为执行线程池容量和第二常数的乘积,所述执行线程池容量为所述执行线程池中的线程数量和线程队列长度之和;在所述执行线程池容量为的情况下,生成所述恢复消费消息指令。4.根据权利要求1所述的方法,其特征在于,在根据所述正在运行的分片计数值,生成恢复消费消息指令之后,所述方法还包括:控制新的分片被目标消费线程消费;控制所述目标消费线程将所述新的分片提交至所述执行线程池中的执行线程池队列;在所述新的分片在所述执行线程池队列中等待执行的过程中,控制所述执行线程池将等待执行指令返回至所述执行控制单元;在所述新的分片在所述执行线程池队列中被执行完成后,控制所述执行线程池将执行成功指令返回至所述执行控制单元。5.根据权利要求4所述的方法,其特征在于,在所述新的分片在所述执行线程池队列中等待执行的过程中,控制所述执行线程池将等待执行指令返回至所述执行控制单元,包括:在所述新的分片在所述执行线程池队列中等...

【专利技术属性】
技术研发人员:邓辉王飞龙李辉朱萌萌张树君
申请(专利权)人:中国邮政储蓄银行股份有限公司
类型:发明
国别省市:

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

1