一种数据处理的方法、装置和存储介质制造方法及图纸

技术编号:31456270 阅读:10 留言:0更新日期:2021-12-18 11:22
本申请公开了一种数据处理的方法、装置和存储介质,具体为获取线程池提交的任务集合和任务集合对应的任务标识,任务集合中包含至少一个待处理任务,保存任务集合以及与任务集合对应的任务标识之间的映射关系,响应于线程池创建任务线程,基于映射关系筛选出与该线程池的任务标识相匹配的任务集合中的至少一个待处理任务,线程池获取对应的至少一个待处理任务,并将获取到的待处理任务缓存至该线程池对应的阻塞工作队列,等待被相应的任务线程执行。本申请实施例通过将各个线程池的待处理任务集中提交并保存,并在后续线程池创建线程后再获取相应的待处理任务,避免各个服务器由于内存上限导致的内存溢出而服务不可用的风险,提升了数据处理效率。提升了数据处理效率。提升了数据处理效率。

【技术实现步骤摘要】
一种数据处理的方法、装置和存储介质


[0001]本申请涉及计算机
,尤其涉及一种数据处理的方法、装置和存储介质。

技术介绍

[0002]在日常的开发工作当中,为提高系统并发量和增加吞吐量,线程池在一个应用中承担着重要的角色。根据线程池的运行原理,主要分为两个步骤,一是增加任务,把任务放到阻塞队列中(如有界队列ArrayBlockingQueue,无界队列LinkedBlockingQueue,延迟队列DelayQueue,锁队列SynchronousQueue等),该阶段存放任务主要消耗服务器资源即内存;二是执行任务,该阶段主要消耗服务器资源即中央处理器(Central Processing Unit,CPU)。但内存空间是有限资源,这就使得在增加任务和执行任务的过程中增加内存的消耗,当达到内存上限内存溢出就会导致系统不可用,当并发量持续升高,极端情况会引起所有服务宕机。如使用有界队列ArrayBlockingQueue,当再提交任务超过队列容量时,会触发拒绝策略,不能是任务正常执行;或使用无界队列LinkedBlockingQueue,持续提交任务,会导致内存溢出。当使用线程池现有的阻塞队列,当每秒查询率较高时都会遇到内存或者业务逻辑的非正常运行。

技术实现思路

[0003]本申请实施例提供了一种数据处理的方法,克服了各个应用服务器由于内存溢出可能导致的服务不可用的问题。
[0004]该方法包括:
[0005]获取至少一个线程池提交的任务集合和所述任务集合对应的任务标识,其中,所述任务集合中包含至少一个待处理任务;
[0006]保存所述任务集合以及与所述任务集合对应的所述任务标识之间的映射关系;
[0007]响应于所述线程池创建任务线程,基于所述映射关系筛选出与该所述线程池的任务标识相匹配的所述任务集合中的至少一个所述待处理任务;
[0008]所述线程池获取对应的至少一个待处理任务,并将获取到的所述待处理任务缓存至该所述线程池对应的所述阻塞工作队列,等待被相应的所述任务线程执行。
[0009]可选地,将获取的所述待处理任务包含的任务数据进行序列化,转化为与所述待处理任务对应的字节序列。
[0010]可选地,在保存所述待识别任务时统计所述待识别任务的保存时长;
[0011]响应于所述保存时长超过该所述待识别任务所属的所述任务集合对应的预设时间阈值,停止执行保存该所述待识别任务的操作。
[0012]可选地,在与接收到的所述线程池发送的所述任务标识符合所述映射关系的所述任务集合中,若未获取到所述待处理任务,执行等待获取所述待处理任务的操作,直至与该所述任务集合对应的所述线程池的所述任务线程中断,和/或所述任务集合持续为空的时长超过预设时长时停止获取该所述任务集合中所述待处理任务的操作。
[0013]可选地,将获取的所述待处理任务中包含的所述字节序列反序列化为任务数据对象。
[0014]可选地,查询已保存的所述任务集合的数量及所述任务集合中包含的所述待处理任务的数量,以及所述线程池的数量和所述任务线程的数量,并调整所述线程池所在的应用服务器的数量。
[0015]在本专利技术的另一个实施例中,提供了一种数据处理的装置,该装置包括:
[0016]获取模块,用于获取至少一个线程池提交的任务集合和所述任务集合对应的任务标识,其中,所述任务集合中包含至少一个待处理任务;
[0017]保存模块,用于保存所述任务集合以及与所述任务集合对应的所述任务标识之间的映射关系;
[0018]筛选模块,用于响应于所述线程池创建任务线程,基于所述映射关系筛选出与该所述线程池的任务标识相匹配的所述任务集合中的至少一个所述待处理任务;
[0019]缓存模块,用于所述线程池获取对应的至少一个待处理任务,并将获取到的所述待处理任务缓存至该所述线程池对应的所述阻塞工作队列,等待被相应的所述任务线程执行。
[0020]可选地,所述获取模块进一步用于:
[0021]将获取的所述待处理任务包含的任务数据进行序列化,转化为与所述待处理任务对应的字节序列。
[0022]在本专利技术的另一个实施例中,提供了一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行上述一种数据处理的方法中的各个步骤。
[0023]在本专利技术的另一个实施例中,提供了一种终端设备,包括处理器,所述处理器用于执行上述一种数据处理的方法中的各个步骤。
[0024]基于上述实施例,首先获取至少一个线程池提交的任务集合和任务集合对应的任务标识,其中,任务集合中包含至少一个待处理任务,其次,保存任务集合以及与任务集合对应的任务标识之间的映射关系,进一步地,响应于线程池创建任务线程,基于映射关系筛选出与该线程池的任务标识相匹配的任务集合中的至少一个待处理任务,最后,线程池获取对应的至少一个待处理任务,并将获取到的待处理任务缓存至该线程池对应的阻塞工作队列,等待被相应的任务线程执行。本申请实施例通过将各个线程池的待处理任务集中提交并保存,并在后续线程池创建线程后再获取相应的待处理任务,避免各个服务器由于内存上限导致的内存溢出而服务不可用的风险,提升了数据处理效率。
附图说明
[0025]为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0026]图1示出了为本申请实施例100所提供的一种数据处理的方法的数据交互场景的示意图;
[0027]图2示出了本申请实施例200提供的一种数据处理的方法的示意图;
[0028]图3示出了本申请实施例300提供的一种数据处理的方法的具体流程的示意图;
[0029]图4示出了本申请实施例400还提供一种数据处理的装置的示意图;
[0030]图5示出了本申请实施例500所提供的一种终端设备的示意图。
具体实施方式
[0031]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0032]本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理的方法,其特征在于,包括:获取至少一个线程池提交的任务集合和所述任务集合对应的任务标识,其中,所述任务集合中包含至少一个待处理任务;保存所述任务集合以及与所述任务集合对应的所述任务标识之间的映射关系;响应于所述线程池创建任务线程,基于所述映射关系筛选出与该所述线程池的任务标识相匹配的所述任务集合中的至少一个所述待处理任务;所述线程池获取对应的至少一个待处理任务,并将获取到的所述待处理任务缓存至该所述线程池对应的所述阻塞工作队列,等待被相应的所述任务线程执行。2.根据权利要求1所述的方法,其特征在于,所述获取至少一个线程池提交的任务集合和所述任务集合对应的任务标识的步骤包括:将获取的所述待处理任务包含的任务数据进行序列化,转化为与所述待处理任务对应的字节序列。3.根据权利要求1所述的方法,其特征在于,所述保存所述任务集合以及与所述任务集合对应的所述任务标识之间的映射关系的步骤包括:在保存所述待识别任务时统计所述待识别任务的保存时长;响应于所述保存时长超过该所述待识别任务所属的所述任务集合对应的预设时间阈值,停止执行保存该所述待识别任务的操作。4.根据权利要求1所述的方法,其特征在于,所述基于所述映射关系筛选出与该所述线程池的所述任务标识相匹配的所述任务集合中的至少一个所述待处理任务的步骤包括:在与接收到的所述线程池发送的所述任务标识符合所述映射关系的所述任务集合中,若未获取到所述待处理任务,执行等待获取所述待处理任务的操作,直至与该所述任务集合对应的所述线程池的所述任务线程中断,和/或所述任务集合持续为空的时长超过预设时长时停止获取该所述任务集合中所述待处理任务的操...

【专利技术属性】
技术研发人员:李鹏程赵燕
申请(专利权)人:北京京东世纪贸易有限公司
类型:发明
国别省市:

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

1