CN115858133B - 批量数据的处理方法、装置、电子设备及存储介质 - Google Patents
批量数据的处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115858133B CN115858133B CN202310180916.9A CN202310180916A CN115858133B CN 115858133 B CN115858133 B CN 115858133B CN 202310180916 A CN202310180916 A CN 202310180916A CN 115858133 B CN115858133 B CN 115858133B
- Authority
- CN
- China
- Prior art keywords
- queue
- executed
- code
- queues
- batch data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种批量数据的处理方法、装置、电子设备及存储介质,涉及计算机技术领域;所述批量数据的处理方法,应用于低代码开发平台,包括:基于批量数据对应的待执行代码,生成异步任务;将异步任务投递至租户计数队列;租户计数队列包括多个长度递增的第一队列;针对每一个第一队列,将第一队列对应的目标待执行代码投递至公共队列中的第二队列;执行各第二队列中的目标待执行代码。通过上述方法,可以将批量数据对应的待执行代码分散在长度不同的第一队列,平衡了多租户间服务器资源的分配;通过执行各第二队列中的目标待执行代码,保证了执行各第二队列的目标待执行代码的机会均等,避免了单租户占用服务资源过多、服务器宕机的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种批量数据的处理方法、装置、电子设备及存储介质。
背景技术
目前现有低代码开发平台对批量数据复杂处理场景暂无较好的处理方案,主要有两方面原因:1)低代码平台在大数据场景无法使用分布式、中间件等技术手段处理大数据,且这些技术实施困难,难以满足快速开发的需求;2)代码运行需要平衡租户之间资源分配,使得单一代码块所占用资源受到限制。
低代码开发平台由于资源限制无法应对代码块处理大量数据,在低代码开发平台中处理大量数据容易导致服务阻塞、宕机等问题,影响用户体验。
因此,在低代码开发平台如何对批量数据进行处理是目前亟待解决的问题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种批量数据的处理方法、装置、电子设备及存储介质。
本发明提供一种批量数据的处理方法,应用于低代码开发平台,包括:
基于批量数据对应的待执行代码,生成异步任务;
将所述异步任务投递至租户计数队列;所述租户计数队列包括多个长度递增的第一队列,所述租户计数队列用于记录所述待执行代码在各所述第一队列中的占用情况;
针对每一个所述第一队列,将所述第一队列对应的目标待执行代码投递至公共队列中的第二队列;所述第二队列与所述第一队列具有关联关系;
执行各所述第二队列中的目标待执行代码。
可选地,在所述执行各所述第二队列中的所述目标待执行代码之后,所述方法还包括:
针对每一个所述第二队列,获取所述目标待执行代码在所述低代码开发平台中的资源占用信息;
基于所述资源占用信息,确定所述目标待执行代码的执行策略;
基于所述执行策略,执行所述目标待执行代码。
可选地,所述执行策略包括第一执行策略和第二执行策略;所述第一执行策略为利用第一数目的线程执行所述目标待执行代码,所述第二执行策略为利用第二数目的线程执行所述目标待执行代码,所述第二数目小于所述第一数目;
所述基于所述执行策略,执行所述目标待执行代码,包括:
在所述资源占用信息达到预设阈值的情况下,基于所述第二执行策略,执行所述目标待执行代码。
可选地,所述基于所述执行策略,执行所述目标待执行代码,包括:
在所述资源占用信息未达到预设阈值的情况下,基于所述第一执行策略,执行所述目标待执行代码。
可选地,所述针对每一个所述第一队列,将所述第一队列对应的目标待执行代码投递至公共队列中的第二队列,包括:
获取所述租户计数队列中每一个所述第一队列的队列序号;
针对每一个所述第一队列,基于所述第一队列的队列序号,将所述第一队列对应的目标待执行代码投递至所述第二队列;所述第二队列的队列序号与所述第一队列的队列序号具有关联关系。
可选地,所述基于批量数据对应的待执行代码,生成异步任务,包括:
将所述批量数据进行拆分,生成多个批次数据;
基于各所述批次数据对应的待执行代码,生成所述异步任务。
本发明还提供一种批量数据的处理方法装置,应用于低代码开发平台,包括:
生成模块,用于基于批量数据对应的待执行代码,生成异步任务;
第一投递模块,用于将所述异步任务投递至租户计数队列;所述租户计数队列包括多个长度递增的第一队列,所述租户计数队列用于记录所述待执行代码在各所述第一队列中的占用情况;
第二投递模块,用于针对每一个所述第一队列,将所述第一队列对应的目标待执行代码投递至公共队列中的第二队列;所述第二队列与所述第一队列具有关联关系;
第一执行模块,用于执行各所述第二队列中的目标待执行代码。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述批量数据的处理方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述批量数据的处理方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述批量数据的处理方法。
本发明提供的批量数据的处理方法、装置、电子设备及存储介质,基于批量数据对应的待执行代码生成异步任务,然后将异步任务投递至租户计数队列,由于租户计数队列用于记录待执行代码在各第一队列中的占用情况,且租户计数队列包括多个长度递增的第一队列,因此可以将异步任务中批量数据对应的待执行代码分散在长度不同的第一队列,从而可以防止巨大的待执行代码任务阻塞当前租户或其他租户代码任务的执行,即较小长度的第一队列能够快速消费掉代码任务,空出的位置可以提供给下一个代码任务,平衡了多租户之间对低代码开发平台服务器资源的分配;针对每一个第一队列,将第一队列对应的目标待执行代码投递至公共队列中的第二队列,通过执行各第二队列中的目标待执行代码,保证了执行各第二队列的目标待执行代码的机会均等,避免了单租户占用服务资源过多,从而解决低代码开发平台的代码处理数据量过大而导致的服务阻塞及宕机问题。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的批量数据的处理方法的流程示意图之一;
图2是本发明提供的低代码开发平台对批量数据进行处理的逻辑示意图之一;
图3是本发明提供的批量数据的处理方法的流程示意图之二;
图4是本发明提供的低代码开发平台对批量数据进行处理的逻辑示意图之二;
图5是本发明提供的批量数据的处理方法的流程示意图之三;
图6是本发明提供的批量数据的处理装置的结构示意图;
图7是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1至图4对本发明提供的批量数据的处理方法进行具体描述。图1是本发明提供的批量数据的处理方法的流程示意图之一,参见图1所示,该方法应用于低代码开发平台,包括步骤101-步骤104,其中:
步骤101、基于批量数据对应的待执行代码,生成异步任务。
首先需要说明的是,本发明可以应用于基于低代码开发平台对批量数据进行处理的场景中,其执行主体可以是能够实现低代码开发的任何电子设备,例如可以为智能手机、智能手表、台式电脑、手提电脑等任何一种。
低代码开发平台由于资源限制无法应对代码块处理大量数据,为了使用户在低代码开发平台能够快速开发自定义脚本处理批量数据,避免低代码开发平台处理数据量过大而导致服务阻塞及宕机问题,在本实施例中,首先需要基于批量数据对应的待执行代码,生成异步任务。
实际应用中,首先需要将编写的批量数据对应的待执行代码上传至低代码开发平台,低代码开发平台会自动编译待执行代码;其中,代码编写是用户通过约定的JAVASDK,指定需要处理的数据范围以及数据处理的代码逻辑。
需要说明的是,异步任务是基于待执行代码生成的;即,将批量数据、待执行代码、租户信息、执行代码块等信息进行封装处理,进行构建生成异步任务。使用异步任务,可以分时分段分批次地处理批量数据对应的待执行代码。
步骤102、将所述异步任务投递至租户计数队列;所述租户计数队列包括多个长度递增的第一队列,所述租户计数队列用于记录所述待执行代码在各所述第一队列中的占用情况。
在本实施例中,在多租户的情况下,由于异步任务较多且耗时不可控,租户之间需竞争低代码开发平台服务器的运行资源以执行批量数据对应的待执行代码,因此为了解决多租户之间公平竞争低代码开发平台服务器资源的问题,需要将异步任务投递至租户计数队列。
需要说明的是,租户计数队列不存放真实的待执行代码,只用于记录每一个租户的异步任务在租户计数队列中每个第一队列的占用情况,并根据占用情况决定具体将实际的待执行代码投递至公共队列中哪一个第二队列。
实际应用中,需要在缓存中为每个租户初始化租户计数队列,其中,租户计数队列中包括十六个长度递增的第一队列,长度分别是5、20、50、80、150、250、400、600、1000、1500、2300、3500、5000、10000、20000、2^31-1。
假设待执行代码任务为100个,在租户计数队列全为空的情况下,首先将待执行代码任务投递至长度为5的第一队列①,第一队列①的长度不足则投递至长度为20的第一队列②,以此类推,最终将待执行代码任务拆至4个第一队列:长度为5的第一队列①包括5个目标待执行代码任务、长度为20的第一队列②包括20个目标待执行代码任务、长度为50的第一队列③包括50个目标待执行代码任务、长度为80的第一队列④包括25个目标待执行代码任务。
设计不同长度的第一队列,其目的是为防止巨大的待执行代码任务阻塞当前租户或其他租户代码任务的执行,即较小长度的第一队列能够快速消费掉代码任务,空出的位置可以提供给下一个代码任务,平衡了多租户之间对低代码开发平台服务器资源的分配。
长度递增是保证待执行代码任务能全部放入租户计数队列,且大代码任务尽可能分散至多个第一队列,从而不阻塞后续代码任务入队。
步骤103、针对每一个所述第一队列,将所述第一队列对应的目标待执行代码投递至公共队列中的第二队列;所述第二队列与所述第一队列具有关联关系。
在本实施例中,公共队列为真实存放目标待执行代码的队列,所有租户共享;其中,目标待执行代码是指异步任务的待执行代码中与第一队列对应的待执行代码;第二队列的个数与租户计数队列中第一队列的个数相同。
低代码开发平台中的执行引擎会订阅公共队列用于执行任务,公共队列中所有第二队列获取执行的机会是均等的。
需要说明的是,第二队列的个数等同于第一队列的个数,但长度不限制。公共队列与租户计数队列的用处不同:
租户计数队列是为了计数与排队,公共队列中的各第二队列是真正执行引擎订阅的队列,各第二队列包含所有租户的待执行代码任务。因为租户数量不固定,所以公共队列中的各第二队列的长度无限制。执行引擎会同时订阅所有第二队列,使得执行引擎执行各第二队列的代码任务的机会是均等的。
步骤104、执行各所述第二队列中的所述目标待执行代码。
在本实施例中,利用执行引擎执行各第二队列中的目标待执行代码,保证了低代码开发平台中的执行引擎执行各第二队列的目标待执行代码的机会是均等的,从而避免了单租户占用服务资源过多,从而解决低代码开发平台的代码处理数据量过大而导致的服务阻塞及宕机问题。
实际应用中,执行引擎使用十六个线程同时订阅公共度队列中十六个第二队列,目标待执行代码按先进先出的顺序出列,每个线程获取到目标待执行代码后再由公共线程池执行任务,目的是保证所有第二队列获得执行机会均等,若线程池满载,则阻塞等待资源释放。
图2是本发明提供的低代码开发平台对批量数据进行处理的逻辑示意图之一。
参见图2所示,在低代码开发平台中有n个租户,每个租户都对应有一个异步任务。针对每一个租户,将异步任务投递至租户计数队列,每一个租户计数队列包括16个长度依次递增的第一队列,长度分别是5、20、50、80、150、250、400、600、1000、1500、2300、3500、5000、10000、20000、2^31-1。
然后将每一个租户的各第一队列对应的目标待执行代码投递至公共队列中的第二队列;所述第二队列与所述第一队列具有关联关系。
也就是说,每一个第一队列都有具有关联关系的第二队列,每一个第二队列的长度均为2^31-1;在每一个第二队列中都存放有每一个租户真实的目标待执行代码任务。
执行引擎同时订阅16个第二队列,并执行任一个第二队列中的目标待执行代码任务。
本发明提供的批量数据的处理方法,基于批量数据对应的待执行代码生成异步任务,然后将异步任务投递至租户计数队列,由于租户计数队列用于记录待执行代码在各第一队列中的占用情况,且租户计数队列包括多个长度递增的第一队列,因此可以将异步任务中批量数据对应的待执行代码分散在长度不同的第一队列,从而可以防止巨大的待执行代码任务阻塞当前租户或其他租户代码任务的执行,即较小长度的第一队列能够快速消费掉代码任务,空出的位置可以提供给下一个代码任务,平衡了多租户之间对低代码开发平台服务器资源的分配;针对每一个第一队列,将第一队列对应的目标待执行代码投递至公共队列中的第二队列,通过执行各第二队列中的目标待执行代码,保证了执行各第二队列的目标待执行代码的机会均等,避免了单租户占用服务资源过多,从而解决低代码开发平台的代码处理数据量过大而导致的服务阻塞及宕机问题。
可选地,所述基于批量数据对应的待执行代码,生成异步任务,具体可以通过以下步骤1)-步骤2)实现:
步骤1)、将所述批量数据进行拆分,生成多个批次数据;
步骤2)、基于各所述批次数据对应的待执行代码,生成所述异步任务。
在本实施例中,批量数据可以是数据库查询语句,也可以是数组;用户需要按照约定将批量数据传入至低代码开发平台,然后低代码开发平台将批量数据进行拆分,生成多个小批次的批次数据。
实际应用中,在批量数据是数据库查询语句的情况下,需要将数据库查询语句经过数据库语句解析器,数据库语句解析器能够将批量数据拆分成多条数据库语句,每条语句包含既定的数据条数X;
在批量数据是数组的情况下,则按X条数据,将批量数据直接拆分;X即每个批次的数据条数。
最终将批量数据拆分成多个小批次的批次数据。如:批量数据10000条,每个批次处理100条,则构建100个批次数据。
在生成多个批次数据之后,将多个批次数据、租户信息、每个批次数据对应的待执行代码等信息进行封装处理,进而生成异步任务。
在上述实施方式中,通过把批量数据进行拆分处理,生成多个批次数据,然后基于各批次数据对应的待执行代码,生成异步任务,从而可以使用异步任务,分时分段分批次地处理批量数据对应的待执行代码,降低了低代码开发平台数据处理的并发量。
可选地,所述针对每一个所述第一队列,将所述第一队列对应的目标待执行代码投递至公共队列中的第二队列,具体可以通过以下步骤[1]-步骤[2]实现:
步骤[1]、获取所述租户计数队列中每一个所述第一队列的队列序号;
步骤[2]、针对每一个所述第一队列,基于所述第一队列的队列序号,将所述第一队列对应的目标待执行代码投递至所述第二队列;所述第二队列的队列序号与所述第一队列的队列序号具有关联关系。
在本实施例中,在将异步任务投递至租户计数队列之后,需要获取租户计数队列中每一个第一队列的队列序号;然后使用消息队列组件,将每一个第一队列对应的目标待执行代码按照队列的可用长度,由低到高,依次投递至公共队列中的各第二队列;其中,第二队列的队列序号与第一队列的队列序号具有关联关系。
例如,将长度为5的第一队列①对应的目标待执行代码任务投递至公共队列中的第二队列①、将长度为20的第一队列②对应的目标待执行代码任务投递至公共队列中的第二队列②、将长度为50的第一队列③对应的目标待执行代码任务投递至公共队列中的第二队列③、将长度为80的第一队列④对应的目标待执行代码任务投递至公共队列中的第二队列④。
在上述实施方式中,通过获取租户计数队列中每一个第一队列的队列序号,针对每一个第一队列,基于第一队列的队列序号,将第一队列对应的目标待执行代码投递至与第一队列的队列序号具有关联关系的第二队列,低代码开发平台中的执行引擎会同时订阅所有第二队列,使得执行引擎执行各第二队列的代码任务的机会均等,使得租户之间执行代码更加公平,避免了低代码开发平台处理批量数据导致的队列阻塞问题。
可选地,在所述执行各所述第二队列中的所述目标待执行代码之后,需要基于每一个第二队列中的目标待执行代码在低代码开发平台中的资源占用信息,确定每一个第二队列的目标待执行代码的执行策略,执行策略也称动态负载策略,动态负载策略是根据代码块所消耗的服务器资源动态调节执行引擎的执行效率,最大程度保护服务稳定运行。基于动态负载策略执行目标待执行代码可以进一步避免低代码开发平台处理批量数据导致的队列阻塞问题。
另外,还需要分析目标待执行代码的资源用量并归档保存,用于下次该目标待执行代码执行时动态负载使用。同时按照该目标待执行代码对应的第二队列的队列序号,恢复缓存中租户队列的使用量。
具体可以通过以下步骤[a]-步骤[c]实现:
步骤[a]、针对每一个所述第二队列,获取所述目标待执行代码在所述低代码开发平台中的资源占用信息;
步骤[b]、基于所述资源占用信息,确定所述目标待执行代码的执行策略;
步骤[c]、基于所述执行策略,执行所述目标待执行代码。
在本实施例中,在第一次利用执行引擎执行各第二队列中的目标待执行代码之后,需要使用JVM线程技术获取各第二队列中目标待执行代码在低代码开发平台中的资源占用信息;其中,资源占用信息可以可以是消耗内存、耗时、CPU占用等占用服务资源信息。
基于上述资源占用信息,可以确定出目标待执行代码的执行策略,然后基于每个第二队列中目标待执行代码对应的执行策略,执行目标待执行代码,以保证执行引擎的执行效率,最大程度保护低代码开发平台的服务稳定运行。
可选地,所述执行策略包括第一执行策略和第二执行策略;所述第一执行策略为利用第一数目的线程执行所述目标待执行代码,所述第二执行策略为利用第二数目的线程执行所述目标待执行代码,所述第二数目小于所述第一数目。
具体地,第一执行策略又称为快速执行策略,第二执行策略又称为慢速执行策略;相应地,执行快速执行策略的第二队列又称为快速执行公共队列,执行慢速执行策略的第二队列又称为慢速执行公共队列。
快速执行公共队列与慢速执行公共队列的区别是线程池线程数不同,以达到最大程度保护服务稳定的目的。也就是说,由于租户计数队列中各第一队列的长度为递增,长度较短的第一队列任务会被快速执行完毕,资源释放后,后续的任务可以尽快使用,最终达到租户公平获得执行任务的目的。
所述基于所述执行策略,执行所述目标待执行代码,具体可以通过以下步骤实现:
在所述资源占用信息达到预设阈值的情况下,基于所述第二执行策略,执行所述目标待执行代码。
在本实施例中,对于执行策略的确定设置有资源占用信息的预设阈值,其中设置预设阈值的资源占用信息包括以下至少一项:
a)每秒内存消耗,用于表征代码块对服务内存的影响。
b)CPU耗时,用于表征代码块是否为CPU密集型处理。
c)包含子代码块数量,用于表征触发其它代码块,需要核算多个代码块用量。
在某一第二队列的目标待执行代码的资源占用信息达到预设阈值的情况下,需要基于第二执行策略,执行该第二队列的目标待执行代码。
也就是说,在某一第二队列的目标待执行代码的资源占用信息达到预设阈值的情况下,判断该目标待执行代码为“高用量代码块”,该第二队列为慢速执行公共队列,将该目标待执行代码投递至慢速执行公共队列,任务执行速率将降低。
在上述实施方式中,将资源占用信息达到预设阈值的第二队列确定为慢速执行公共队列,并基于第二执行策略,降低执行目标待执行代码的效率,从而解决低代码开发平台的代码处理数据量过大而导致的服务阻塞及宕机问题。
可选地,所述基于所述执行策略,执行所述目标待执行代码,具体可以通过以下步骤实现:
在所述资源占用信息未达到预设阈值的情况下,基于所述第一执行策略,执行所述目标待执行代码。
在本实施例中,在某第二队列的目标待执行代码的资源占用信息未达到预设阈值的情况下,判断该目标待执行代码为“普通用量代码块”,该第二队列为快速执行公共队列,基于第一执行策略将该目标待执行代码投递至快速执行公共队列,任务执行速率将提高。
在上述实施方式中,将资源占用信息未达到预设阈值的第二队列确定为快速执行公共队列,并基于第一执行策略,提高执行目标待执行代码的效率,从而解决低代码开发平台的代码处理数据量过大而导致的服务阻塞及宕机问题。
图3是本发明提供的批量数据的处理方法的流程示意图之二;参见图3所示,具体包括以下步骤:
步骤301、获取任一第二队列的目标待执行代码在低代码开发平台中的资源占用信息。
在未获取到任一第二队列的目标待执行代码在低代码开发平台中的资源占用信息的情况下,执行步骤305至步骤306。
步骤302、判断资源占用信息是否达到预设阈值;若是,执行步骤303至步骤304;若否,执行步骤305至步骤306。
具体地,设置预设阈值的资源占用信息包括以下至少一项:
a)每秒内存消耗。b)CPU耗时。c)包含子代码块数量。
步骤303、判定目标待执行代码为高用量代码块。
步骤304、将目标待执行代码投递至慢速执行公共队列。
步骤305、判定目标待执行代码为普通用量代码块。
步骤306、将目标待执行代码投递至快速执行公共队列。
图4是本发明提供的低代码开发平台对批量数据进行处理的逻辑示意图之二;
参见图4所示,在低代码开发平台中有n个租户,每个租户都对应有一个异步任务。针对每一个租户,将异步任务投递至租户计数队列,每一个租户计数队列包括16个长度依次递增的第一队列,长度分别是5、20、50、80、150、250、400、600、1000、1500、2300、3500、5000、10000、20000、2^31-1。
然后将每一个租户的各第一队列对应的目标待执行代码投递至公共队列中的第二队列;每一个第一队列都有具有关联关系的第二队列,每一个第二队列的长度均为2^31-1;在每一个第二队列中都存放有每一个租户真实的目标待执行代码任务。
执行引擎同时订阅16个第二队列,并基于各第二队列中目标待执行代码在低代码开发平台中的资源占用信息,确定每一个第二队列的执行策略。
在一种可能的实现方式中,在各第二队列的目标待执行代码的资源占用信息未达到预设阈值的情况下,执行引擎基于快速执行策略执行目标待执行代码。
在另一种可能的实现方式中,在各第二队列的目标待执行代码的资源占用信息达到预设阈值的情况下,执行引擎基于慢速执行策略执行目标待执行代码。
图5是本发明提供的批量数据的处理方法的流程示意图之三,参见图5所示,该方法应用于低代码开发平台,包括步骤501-步骤510,其中:
步骤501、将批量数据进行拆分,生成多个批次数据。
步骤502、基于各批次数据对应的待执行代码,生成异步任务。
步骤503、将异步任务投递至租户计数队列;其中,租户计数队列包括多个长度递增的第一队列,租户计数队列用于记录待执行代码在各第一队列中的占用情况。
步骤504、获取租户计数队列中每一个第一队列的队列序号。
步骤505、针对每一个第一队列,基于第一队列的队列序号,将第一队列对应的目标待执行代码投递至公共队列中的第二队列;其中,第二队列的队列序号与第一队列的队列序号具有关联关系。
步骤506、执行各第二队列中的目标待执行代码。
步骤507、针对每一个第二队列,获取目标待执行代码在低代码开发平台中的资源占用信息。
步骤508、基于资源占用信息,确定目标待执行代码的执行策略;其中,执行策略包括第一执行策略和第二执行策略;第一执行策略为利用第一数目的线程执行目标待执行代码,第二执行策略为利用第二数目的线程执行目标待执行代码,且第二数目小于第一数目。
步骤509、在资源占用信息达到预设阈值的情况下,基于第二执行策略,执行目标待执行代码。
步骤510、在资源占用信息未达到预设阈值的情况下,基于第一执行策略,执行目标待执行代码。
下面对本发明提供的批量数据的处理装置进行描述,下文描述的批量数据的处理装置与上文描述的批量数据的处理方法可相互对应参照。图6是本发明提供的批量数据的处理装置的结构示意图,如图6所示,该批量数据的处理装置600包括:生成模块601、第一投递模块602、第二投递模块603及第一执行模块604,其中:
生成模块601,用于基于批量数据对应的待执行代码,生成异步任务;
第一投递模块602,用于将所述异步任务投递至租户计数队列;所述租户计数队列包括多个长度递增的第一队列,所述租户计数队列用于记录所述待执行代码在各所述第一队列中的占用情况;
第二投递模块603,用于针对每一个所述第一队列,将所述第一队列对应的目标待执行代码投递至公共队列中的第二队列;所述第二队列与所述第一队列具有关联关系;
第一执行模块604,用于执行各所述第二队列中的所述目标待执行代码。
本发明提供的批量数据的处理装置,基于批量数据对应的待执行代码生成异步任务,然后将异步任务投递至租户计数队列,由于租户计数队列用于记录待执行代码在各第一队列中的占用情况,且租户计数队列包括多个长度递增的第一队列,因此可以将异步任务中批量数据对应的待执行代码分散在长度不同的第一队列,从而可以防止巨大的待执行代码任务阻塞当前租户或其他租户代码任务的执行,即较小长度的第一队列能够快速消费掉代码任务,空出的位置可以提供给下一个代码任务,平衡了多租户之间对低代码开发平台服务器资源的分配;针对每一个第一队列,将第一队列对应的目标待执行代码投递至公共队列中的第二队列,通过执行各第二队列中的目标待执行代码,保证了执行各第二队列的目标待执行代码的机会均等,避免了单租户占用服务资源过多,从而解决低代码开发平台的代码处理数据量过大而导致的服务阻塞及宕机问题。
可选地,所述装置还包括:
获取模块,用于针对每一个所述第二队列,获取所述目标待执行代码在所述低代码开发平台中的资源占用信息;
确定模块,用于基于所述资源占用信息,确定所述目标待执行代码的执行策略;
第二执行模块,用于基于所述执行策略,执行所述目标待执行代码。
可选地,所述执行策略包括第一执行策略和第二执行策略;所述第一执行策略为利用第一数目的线程执行所述目标待执行代码,所述第二执行策略为利用第二数目的线程执行所述目标待执行代码,所述第二数目小于所述第一数目;
所述第二执行模块,进一步用于:
在所述资源占用信息达到预设阈值的情况下,基于所述第二执行策略,执行所述目标待执行代码。
可选地,所述第二执行模块,进一步用于:
在所述资源占用信息未达到预设阈值的情况下,基于所述第一执行策略,执行所述目标待执行代码。
可选地,所述第二投递模块603,进一步用于:
获取所述租户计数队列中每一个所述第一队列的队列序号;
针对每一个所述第一队列,基于所述第一队列的队列序号,将所述第一队列对应的目标待执行代码投递至所述第二队列;所述第二队列的队列序号与所述第一队列的队列序号具有关联关系。
可选地,所述生成模块601,进一步用于:
将所述批量数据进行拆分,生成多个批次数据;
基于各所述批次数据对应的待执行代码,生成所述异步任务。
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行批量数据的处理方法,该方法应用于低代码开发平台,包括:基于批量数据对应的待执行代码,生成异步任务;将所述异步任务投递至租户计数队列;所述租户计数队列包括多个长度递增的第一队列,所述租户计数队列用于记录所述待执行代码在各所述第一队列中的占用情况;针对每一个所述第一队列,将所述第一队列对应的目标待执行代码投递至公共队列中的第二队列;所述第二队列与所述第一队列具有关联关系;执行各所述第二队列中的所述目标待执行代码。
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的批量数据的处理方法,该方法包括:基于批量数据对应的待执行代码,生成异步任务;将所述异步任务投递至租户计数队列;所述租户计数队列包括多个长度递增的第一队列,所述租户计数队列用于记录所述待执行代码在各所述第一队列中的占用情况;针对每一个所述第一队列,将所述第一队列对应的目标待执行代码投递至公共队列中的第二队列;所述第二队列与所述第一队列具有关联关系;执行各所述第二队列中的所述目标待执行代码。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的批量数据的处理方法,该方法包括:基于批量数据对应的待执行代码,生成异步任务;将所述异步任务投递至租户计数队列;所述租户计数队列包括多个长度递增的第一队列,所述租户计数队列用于记录所述待执行代码在各所述第一队列中的占用情况;针对每一个所述第一队列,将所述第一队列对应的目标待执行代码投递至公共队列中的第二队列;所述第二队列与所述第一队列具有关联关系;执行各所述第二队列中的所述目标待执行代码。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种批量数据的处理方法,其特征在于,应用于低代码开发平台,包括:
基于批量数据对应的待执行代码,生成异步任务;
将所述异步任务投递至租户计数队列;所述租户计数队列包括多个长度递增的第一队列,所述租户计数队列用于记录所述待执行代码在各所述第一队列中的占用情况;
针对每一个所述第一队列,将所述第一队列对应的目标待执行代码投递至公共队列中的第二队列;所述第二队列与所述第一队列具有关联关系;
执行各所述第二队列中的所述目标待执行代码。
2.根据权利要求1所述的批量数据的处理方法,其特征在于,在所述执行各所述第二队列中的所述目标待执行代码之后,所述方法还包括:
针对每一个所述第二队列,获取所述目标待执行代码在所述低代码开发平台中的资源占用信息;
基于所述资源占用信息,确定所述目标待执行代码的执行策略;
基于所述执行策略,执行所述目标待执行代码。
3.根据权利要求2所述的批量数据的处理方法,其特征在于,所述执行策略包括第一执行策略和第二执行策略;所述第一执行策略为利用第一数目的线程执行所述目标待执行代码,所述第二执行策略为利用第二数目的线程执行所述目标待执行代码,所述第二数目小于所述第一数目;
所述基于所述执行策略,执行所述目标待执行代码,包括:
在所述资源占用信息达到预设阈值的情况下,基于所述第二执行策略,执行所述目标待执行代码。
4.根据权利要求3所述的批量数据的处理方法,其特征在于,所述基于所述执行策略,执行所述目标待执行代码,包括:
在所述资源占用信息未达到预设阈值的情况下,基于所述第一执行策略,执行所述目标待执行代码。
5.根据权利要求1所述的批量数据的处理方法,其特征在于,所述针对每一个所述第一队列,将所述第一队列对应的目标待执行代码投递至公共队列中的第二队列,包括:
获取所述租户计数队列中每一个所述第一队列的队列序号;
针对每一个所述第一队列,基于所述第一队列的队列序号,将所述第一队列对应的目标待执行代码投递至所述第二队列;所述第二队列的队列序号与所述第一队列的队列序号具有关联关系。
6.根据权利要求1所述的批量数据的处理方法,其特征在于,所述基于批量数据对应的待执行代码,生成异步任务,包括:
将所述批量数据进行拆分,生成多个批次数据;
基于各所述批次数据对应的待执行代码,生成所述异步任务。
7.一种批量数据的处理装置,其特征在于,应用于低代码开发平台,包括:
生成模块,用于基于批量数据对应的待执行代码,生成异步任务;
第一投递模块,用于将所述异步任务投递至租户计数队列;所述租户计数队列包括多个长度递增的第一队列,所述租户计数队列用于记录所述待执行代码在各所述第一队列中的占用情况;
第二投递模块,用于针对每一个所述第一队列,将所述第一队列对应的目标待执行代码投递至公共队列中的第二队列;所述第二队列与所述第一队列具有关联关系;
第一执行模块,用于执行各所述第二队列中的所述目标待执行代码。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述批量数据的处理方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述批量数据的处理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310180916.9A CN115858133B (zh) | 2023-03-01 | 2023-03-01 | 批量数据的处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310180916.9A CN115858133B (zh) | 2023-03-01 | 2023-03-01 | 批量数据的处理方法、装置、电子设备及存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN115858133A CN115858133A (zh) | 2023-03-28 |
| CN115858133B true CN115858133B (zh) | 2023-05-02 |
Family
ID=85659410
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202310180916.9A Active CN115858133B (zh) | 2023-03-01 | 2023-03-01 | 批量数据的处理方法、装置、电子设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN115858133B (zh) |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112380024A (zh) * | 2021-01-18 | 2021-02-19 | 天道金科股份有限公司 | 一种基于分布式计数的线程调度方法 |
| CN112788054A (zh) * | 2021-01-27 | 2021-05-11 | 杭州萤石软件有限公司 | 一种物联网数据处理方法、系统及设备 |
| CN113986497A (zh) * | 2021-10-27 | 2022-01-28 | 北京百度网讯科技有限公司 | 基于多租户技术的队列调度方法、装置及系统 |
| CN114153920A (zh) * | 2021-11-19 | 2022-03-08 | 国家电投集团新疆能源化工有限责任公司 | 大数据边平台与方法 |
| CN114816676A (zh) * | 2022-05-27 | 2022-07-29 | 中国建设银行股份有限公司 | 用于实现低代码开发平台多租户部署的系统及方法 |
| CN115422063A (zh) * | 2022-09-06 | 2022-12-02 | 宁波数益工联科技有限公司 | 一种低代码接口自动化系统、电子设备及存储介质 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8818940B2 (en) * | 2011-03-29 | 2014-08-26 | Salesforce.Com, Inc. | Systems and methods for performing record actions in a multi-tenant database and application system |
| US11321135B2 (en) * | 2019-10-31 | 2022-05-03 | Oracle International Corporation | Rate limiting compliance assessments with multi-layer fair share scheduling |
-
2023
- 2023-03-01 CN CN202310180916.9A patent/CN115858133B/zh active Active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112380024A (zh) * | 2021-01-18 | 2021-02-19 | 天道金科股份有限公司 | 一种基于分布式计数的线程调度方法 |
| CN112788054A (zh) * | 2021-01-27 | 2021-05-11 | 杭州萤石软件有限公司 | 一种物联网数据处理方法、系统及设备 |
| CN113986497A (zh) * | 2021-10-27 | 2022-01-28 | 北京百度网讯科技有限公司 | 基于多租户技术的队列调度方法、装置及系统 |
| CN114153920A (zh) * | 2021-11-19 | 2022-03-08 | 国家电投集团新疆能源化工有限责任公司 | 大数据边平台与方法 |
| CN114816676A (zh) * | 2022-05-27 | 2022-07-29 | 中国建设银行股份有限公司 | 用于实现低代码开发平台多租户部署的系统及方法 |
| CN115422063A (zh) * | 2022-09-06 | 2022-12-02 | 宁波数益工联科技有限公司 | 一种低代码接口自动化系统、电子设备及存储介质 |
Non-Patent Citations (1)
| Title |
|---|
| 刘一田 ; 刘士进 ; .多租户高可用并行任务调度框架.计算机系统应用.2016,(第12期),全文. * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN115858133A (zh) | 2023-03-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10484236B2 (en) | Performance of multi-processor computer systems | |
| CN111352736A (zh) | 大数据资源的调度方法、装置、服务器及存储介质 | |
| WO2022068697A1 (zh) | 任务调度方法及装置 | |
| CN113986497B (zh) | 基于多租户技术的队列调度方法、装置及系统 | |
| CN108574645B (zh) | 一种队列调度方法及装置 | |
| CN110928905B (zh) | 一种数据处理方法和装置 | |
| CN107656813A (zh) | 一种负载调度的方法、装置及终端 | |
| JP2020194523A (ja) | アクセス請求を処理する方法、装置、デバイスならびに記憶媒体 | |
| CN115379512B (zh) | 带宽调整方法及装置、电子设备、计算机可读存储介质 | |
| CN115378879A (zh) | 数据控制方法及相关装置 | |
| CN108829519A (zh) | 基于云平台的任务调度方法、云平台及计算机可读存储介质 | |
| CN116226178A (zh) | 一种数据查询方法、装置、存储介质及电子装置 | |
| CN111078651A (zh) | 统计对象存储的使用量的方法及装置 | |
| CN118394465A (zh) | 一种任务调度方法、系统、电子设备及存储介质 | |
| CN115391053B (zh) | 基于cpu和gpu混合计算的在线服务方法及装置 | |
| CN112380001A (zh) | 日志输出方法、负载均衡设备及计算机可读存储介质 | |
| CN115858133B (zh) | 批量数据的处理方法、装置、电子设备及存储介质 | |
| CN113918291A (zh) | 多核操作系统流任务调度方法、系统、计算机和介质 | |
| CN118796390A (zh) | 一种作业处理方法及相关装置 | |
| CN114816701B (zh) | 线程管理方法、电子设备及存储介质 | |
| CN112286930A (zh) | redis业务方资源共享的方法、装置、存储介质及电子设备 | |
| CN116881003A (zh) | 资源分配方法、装置、服务设备及存储介质 | |
| CN116225685A (zh) | 一种调度物理核心的方法及装置 | |
| CN118075355A (zh) | 任务请求调度方法、装置、程序、电子设备及存储介质 | |
| CN104793985B (zh) | 一种虚拟机调度方法和管理设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant | ||
| PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Processing methods, devices, electronic equipment, and storage media for batch data Granted publication date: 20230502 Pledgee: Guangxi Tencent Venture Capital Co.,Ltd. Pledgor: BEIJING RENKE INTERACTIVE NETWORK TECHNOLOGY Co.,Ltd. Registration number: Y2025990000081 |
|
| PE01 | Entry into force of the registration of the contract for pledge of patent right |