CN116909681A - 数据处理组件的生成方法、装置、电子设备及存储介质 - Google Patents
数据处理组件的生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116909681A CN116909681A CN202310694211.9A CN202310694211A CN116909681A CN 116909681 A CN116909681 A CN 116909681A CN 202310694211 A CN202310694211 A CN 202310694211A CN 116909681 A CN116909681 A CN 116909681A
- Authority
- CN
- China
- Prior art keywords
- data processing
- code
- processing component
- target data
- target
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
-
- 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
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种数据处理组件的生成方法、装置、电子设备及存储介质,该方法包括:获取管理用户在待生成数据处理组件对应的代码输入界面,输入的初始数据处理代码,以及初始数据处理代码对应的配置信息;在数据处理任务启动时,在待生成数据处理组件对应的拦截器中基于配置信息补充数据处理代码,得到目标数据处理代码及对应的名称信息;根据名称信息,将目标数据处理代码加载到内存中,得到目标数据处理代码对应的类对象;创建类对象的实例,得到生成的目标数据处理组件。通过本申请的方法,能够根据用户输入的始数据处理代码及对应的配置信息生成数据处理组件,以满足用户各种各样的数据处理需求。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及数据处理组件的生成方法、装置、电子设备及存储介质。
背景技术
随着数据处理需求的不断增加,数据处理组件也越来越普遍。目前,在通过数据处理组件对数据进行处理时,一般都是在数据处理系统启动前,完成所有数据处理组件的功能封装,在系统启动时将所有数据处理组件进行运行,以使用户在系统中通过数据处理组件来执行数据处理任务。
但是,由于上述数据处理组件的功能是提前封装好的,因此数据处理任务的内容也是固定,导致无法满足用户各种各样的数据处理需求。
发明内容
有鉴于此,本申请的目的在于提供一种数据处理组件的生成方法、装置、电子设备及存储介质,能够根据用户输入的始数据处理代码及对应的配置信息生成数据处理组件,以满足用户各种各样的数据处理需求。
第一方面,本申请实施例提供了一种数据处理组件的生成方法,该数据处理组件的生成方法包括:
获取管理用户在待生成数据处理组件对应的代码输入界面,输入的初始数据处理代码,以及初始数据处理代码对应的配置信息;
在数据处理任务启动时,在待生成数据处理组件对应的拦截器中基于配置信息补充数据处理代码,得到目标数据处理代码及对应的名称信息;
根据名称信息,将目标数据处理代码加载到内存中,得到目标数据处理代码对应的类对象;
创建类对象的实例,得到生成的目标数据处理组件。
在一种可能的实施方式中,根据名称信息,将目标数据处理代码加载到内存中,得到目标数据处理代码对应的类对象,包括:
根据名称信息,将目标数据处理代码转换为字节码;
将字节码加载到内存中,得到目标数据处理代码对应的类对象。
在一种可能的实施方式中,将字节码加载到内存中,得到目标数据处理代码对应的类对象,包括:
判断字节码对应的存储路径下是否存在类加载器;
若字节码对应的存储路径下不存在类加载器,则为字节码对应的存储路径创建类加载器;
通过类加载器将字节码加载到内存中,得到目标数据处理代码对应的类对象。
在一种可能的实施方式中,该数据处理组件的生成方法,还包括:
在执行数据处理任务时,基于拦截器实时获取管理用户发送的目标数据处理组件的代码修改请求;代码修改请求中包含有修改数据处理代码及对应的配置信息;
在拦截器中基于配置信息,将修改数据处理代码进行补充后加载到内存中,得到目标修改数据处理代码对应的修改类对象;
并删除内存中拦截器对应的类对象;
创建修改类对象的实例,得到生成的修改数据处理组件。
在一种可能的实施方式中,该数据处理组件的生成方法,还包括:
目标数据处理组件对应的拦截器对数据处理用户发送的待处理数据进行拦截;
对待处理数据进行与目标数据处理组件对应的数据处理。
第二方面,本申请实施例还提供了一种数据处理组件的生成装置,该数据处理组件的生成装置包括:
获取模块,用于获取管理用户在待生成数据处理组件对应的代码输入界面,输入的初始数据处理代码,以及数据处理代码对应的配置信息;
补充模块,用于在数据处理任务启动时,在待生成数据处理组件对应的拦截器中基于配置信息补充数据处理代码,得到目标数据处理代码及对应的名称信息;
加载模块,用于根据名称信息,将目标数据处理代码加载到内存中,得到目标数据处理代码对应的类对象;
创建模块,用于创建类对象的实例,得到生成的目标数据处理组件。
在一种可能的实施方式中,加载模块,具体用于根据名称信息,将目标数据处理代码转换为字节码;将字节码加载到内存中,得到目标数据处理代码对应的类对象。
在一种可能的实施方式中,加载模块,还用于:
判断字节码对应的存储路径下是否存在类加载器;
若字节码对应的存储路径下不存在类加载器,则为字节码对应的存储路径创建类加载器;
通过类加载器将字节码加载到内存中,得到目标数据处理代码对应的类对象。
在一种可能的实施方式中,该数据处理组件的生成装置,还包括:删除模块、补充加载模块;
获取模块,用于在执行数据处理任务时,基于拦截器实时获取管理用户发送的目标数据处理组件的代码修改请求;代码修改请求中包含有修改数据处理代码及对应的配置信息;
补充加载模块,用于在拦截器中基于配置信息,将修改数据处理代码进行补充后加载到内存中,得到目标修改数据处理代码对应的修改类对象;
删除模块,用于删除内存中拦截器对应的类对象;
创建模块,还用于创建修改类对象的实例,得到生成的修改数据处理组件。
在一种可能的实施方式中,该数据处理组件的生成装置,还包括:拦截模块、数据处理模块;
拦截模块,用于目标数据处理组件对应的拦截器对数据处理用户发送的待处理数据进行拦截;
数据处理模块,用于对待处理数据进行与目标数据处理组件对应的数据处理。
第三方面,本申请实施例还提供了一种电子设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行如第一方面任一项数据处理组件的生成方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行如第一方面任一项数据处理组件的生成方法的步骤。
本申请实施例提供了一种数据处理组件的生成方法、装置、电子设备及存储介质,该方法包括:获取管理用户在待生成数据处理组件对应的代码输入界面,输入的初始数据处理代码,以及数据处理代码对应的配置信息;在数据处理任务启动时,在待生成数据处理组件对应的拦截器中基于配置信息补充数据处理代码,得到目标数据处理代码及对应的名称信息;根据名称信息,将目标数据处理代码加载到内存中,得到目标数据处理代码对应的类对象;创建类对象的实例,得到生成的目标数据处理组件。本申请通过在数据处理任务启动时,在拦截器中基于用户输入的配置信息补充用户输入的数据处理代码后,将得到的目标数据处理代码加载到内存中得到类对象并创建类对象的实例,能够生成数据处理组件,以满足用户各种各样的数据处理需求。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的一种数据处理组件的生成方法的流程图;
图2示出了本申请实施例提供的另一种数据处理组件的生成方法的流程图;
图3示出了本申请实施例提供的另一种数据处理组件的生成方法的流程图;
图4示出了本申请实施例提供的一种数据处理组件的生成装置的结构示意图;
图5示出了本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了使得本领域技术人员能够使用本申请内容,结合特定应用场景“数据处理技术领域”,给出以下实施方式。对于本领域技术人员来说,在不脱离本申请的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。虽然本申请主要围绕“数据处理技术领域”进行描述,但是应该理解,这仅是一个示例性实施例。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
下面对本申请实施例提供的一种数据处理组件的生成方法进行详细说明。
参照图1所示,为本申请实施例提供的一种数据处理组件的生成方法的流程示意图,该数据处理组件的生成方法的具体执行过程为:
S101、获取管理用户在待生成数据处理组件对应的代码输入界面,输入的初始数据处理代码,以及数据处理代码对应的配置信息。
S102、在数据处理任务启动时,在待生成数据处理组件对应的拦截器中基于配置信息补充数据处理代码,得到目标数据处理代码及对应的名称信息。
S103、根据名称信息,将目标数据处理代码加载到内存中,得到目标数据处理代码对应的类对象。
S104、创建类对象的实例,得到生成的目标数据处理组件。
本申请实施例提供了一种数据处理组件的生成方法,该方法包括:获取管理用户在待生成数据处理组件对应的代码输入界面,输入的初始数据处理代码,以及数据处理代码对应的配置信息;在数据处理任务启动时,在待生成数据处理组件对应的拦截器中基于配置信息补充数据处理代码,得到目标数据处理代码及对应的名称信息;根据名称信息,将目标数据处理代码加载到内存中,得到目标数据处理代码对应的类对象;创建类对象的实例,得到生成的目标数据处理组件。本申请通过在数据处理任务启动时,在拦截器中基于用户输入的配置信息补充用户输入的数据处理代码后,将得到的目标数据处理代码加载到内存中得到类对象并创建类对象的实例,能够生成数据处理组件,以满足用户各种各样的数据处理需求。
下面对本申请实施例示例性的各步骤进行说明:
S101、获取管理用户在待生成数据处理组件对应的代码输入界面,输入的初始数据处理代码,以及初始数据处理代码对应的配置信息。
在本申请实施方式中,开启系统之后,在数据处理组件搭建界面中显示所有已生成数据处理组件和所有待生成数据处理组件;管理用户在所有已生成数据处理组件和待生成数据处理组件中选择需要的数据处理组件进行数据处理组件的搭建。将已生成数据处理组件加载到内存中,并获取管理用户在搭建完成的数据处理组件中的待生成数据处理组件对应的代码输入界面,输入的初始数据处理代码,以及初始数据处理代码对应的配置信息。
其中,已生成数据处理组件是指用户无法自定义功能的数据处理组件;已生成数据处理组件的功能可以包括数据清洗、数据转化、数据计算、数据标记、数据分发、视频抽帧、图像合成、图像标注、图像水印、GIS空间转换、AI分类、AI识别、AI预测等。待生成数据处理组件是指用户可以自定义功能的数据处理组件;本申请实施例中每个数据处理组件都是拦截器组件,具体通过Flume中Interceptor基类进行构造的DynamicInterceptor拦截器组件。初始数据处理代码中只包含有用于实现该待生成数据处理组件对应功能的逻辑代码,并不包含定义部分代码,定义部分代码比如依赖导入代码、参数定义代码等。配置信息中包含有数据处理代码的函数名、函数小类、函数中文名称、函数类名、函数方法名和功能描述等。
S102、在数据处理任务启动时,在待生成数据处理组件对应的拦截器中基于配置信息补充数据处理代码,得到目标数据处理代码及对应的名称信息。
在本申请实施方式中,管理用户在输入初始数据处理代码并保存后,会向服务器发送任务启动请求,以启动数据处理任务;在数据处理任务启动时,服务器会在待生成数据处理组件对应的拦截器中基于配置信息补充数据处理代码的依赖、包名、类名、参数定义代码语句等,以得到完整的目标数据处理代码,该目标数据处理代码的文件为可以运行的完整java代码。
其中,目标数据处理代码对应的名称信息包括目标数据处理代码的类名和包名。
S103、根据名称信息,将目标数据处理代码加载到内存中,得到目标数据处理代码对应的类对象。
具体地,通过下述步骤将目标数据处理代码加载到内存中:
步骤一、根据名称信息,将目标数据处理代码转换为字节码;
在本申请实施方式中,根据名称信息中的包名,将目标数据处理代码转换为字节码,得到目标数据处理代码的jar包,包含可执行的class文件。
具体实现代码为“JavaStringCompiler compiler=new JavaStringCompiler();Map<String,byte[]>results=compiler.compiler(filename:className+“.java”,source:prefix+script);”
步骤二、将字节码加载到内存中,得到目标数据处理代码对应的类对象。
具体地,判断字节码对应的存储路径下是否存在类加载器;若字节码对应的存储路径下不存在类加载器,则为字节码对应的存储路径创建类加载器;通过类加载器将字节码加载到内存中,得到目标数据处理代码对应的类对象。
在本申请实施方式中,每个存储路径对应于一个类加载器,判断该字节码对应的存储路径,即jar包对应的存储路径下是否存在类加载器,若字节码对应的存储路径下不存在类加载器,说明对该字节码进行加载时,需要为该字节码创建类加载器。若字节码对应的存储路径下存在类加载器,则通过字节码对应的存储路径对应的类加载器将字节码加载到内存中,得到目标数据处理代码对应的类对象。
具体过程代码如下:
这里,本申请实施例中通过字节码的存储路径对应的类加载器来加载字节码,可以避免现有技术中通过字节码的类名和包名来进行加载时由于类名和包名重复导致的加载错误的问题。
S104、创建类对象的实例,得到生成的目标数据处理组件。
在本申请实施方式中,创建类对象的实例,即为目标数据处理代码对应的类对象进行实例化,实例化对象后就可以得到用于数据处理的目标数据处理组件。具体代码如下:Object instance=clazz.loadClass(fullName,results)。
进一步地,在数据处理任务结束时,基于关闭方法将内存中该目标数据处理组件对应的类对象进行注销。
参照图2所示,为本申请实施例提供的另一种数据处理组件的生成方法的流程示意图,下面对本申请实施例示例性的各步骤进行说明:
S201、在执行数据处理任务时,基于拦截器实时获取管理用户发送的目标数据处理组件的代码修改请求;代码修改请求中包含有修改数据处理代码及对应的配置信息。
在本申请实施方式中,系统执行任务过程当中,管理用户也可以随时更改按照图1步骤生成的目标数据处理组件的代码,以修改目标数据处理组件的功能。管理用户会在目标数据处理组件的代码输入界面输入修改后的修改数据处理代码,及修改数据处理代码对应的配置信息;输入完成后管理用户会点击保存或确定,以向服务器发送目标数据处理组件的代码修改请求,然后与目标数据处理组件对应的拦截器就会获取到管理用户发送的目标数据处理组件的代码修改请求。
其中,修改数据处理代码中只包含有用于实现该目标数据处理组件对应功能的逻辑代码,并不包含定义部分代码,定义部分代码比如依赖导入代码、参数定义代码等。修改数据处理代码对应的配置信息中包含有修改数据处理代码的函数名、函数小类、函数中文名称、函数类名、函数方法名和功能描述等。
S202、在拦截器中基于配置信息,将修改数据处理代码进行补充后加载到内存中,得到目标修改数据处理代码对应的修改类对象;
在本申请实施方式中,目标数据处理组件对应的拦截器在接收到目标数据处理组件的代码修改请求后,在目标数据处理组件对应的拦截器中基于修改数据处理代码对应的配置信息补充该修改数据处理代码,得到目标修改数据处理代码及对应的名称信息。根据目标修改数据处理代码对应的名称信息,将目标修改数据处理代码加载到内存中,得到目标修改数据处理代码对应的类对象。
具体地,在目标数据处理组件对应的拦截器中基于修改数据处理代码对应的配置信息补充该修改数据处理代码,得到目标修改数据处理代码及对应的名称信息,包括:管理用户在输入修改数据处理代码并保存后,服务器会在目标数据处理组件对应的拦截器中基于修改数据处理代码对应的配置信息补充该修改数据处理代码的依赖、包名、类名、参数定义代码语句等,以得到完整的目标修改数据处理代码,该目标修改数据处理代码的文件为可以运行的完整java代码。
其中,目标修改数据处理代码对应的名称信息包括目标数据处理代码的类名和包名。
具体地,通过下述步骤根据目标修改数据处理代码对应的名称信息,将目标修改数据处理代码加载到内存中,得到目标修改数据处理代码对应的类对象:
步骤一、根据目标修改数据处理代码对应的名称信息,将目标修改数据处理代码转换为字节码;
在本申请实施方式中,根据目标修改数据处理代码对应的名称信息中的包名,将目标修改数据处理代码转换为字节码,得到目标修改数据处理代码的jar包,包含可执行的class文件。
具体实现代码为“JavaStringCompiler compiler=new JavaStringCompiler();Map<String,byte[]>results=compiler.compiler(filename:className+“.java”,source:prefix+script);”
步骤二、将目标修改数据处理代码对应的字节码加载到内存中,得到目标修改数据处理代码对应的类对象。
可选地,判断目标修改数据处理代码对应的字节码对应的存储路径下是否存在类加载器;若目标修改数据处理代码对应的字节码对应的存储路径下不存在类加载器,则为目标修改数据处理代码对应的字节码对应的存储路径创建类加载器;通过类加载器将目标修改数据处理代码对应的字节码加载到内存中,得到目标修改数据处理代码对应的类对象。
在本申请实施方式中,每个存储路径对应于一个类加载器,判断目标修改数据处理代码对应的字节码对应的存储路径,即目标修改数据处理代码对应的jar包对应的存储路径下是否存在类加载器,若目标修改数据处理代码对应的字节码对应的存储路径下不存在类加载器,说明对目标修改数据处理代码对应的字节码进行加载时,需要为目标修改数据处理代码对应的字节码创建类加载器。若目标修改数据处理代码对应的字节码对应的存储路径下存在类加载器,则通过目标修改数据处理代码对应的字节码对应的存储路径对应的类加载器将字节码加载到内存中,得到目标修改数据处理代码对应的类对象。
具体过程代码如下:
这里,本申请实施例中通过目标修改数据处理代码对应的字节码的存储路径对应的类加载器,加载目标修改数据处理代码对应的字节码,可以避免现有技术中通过目标修改数据处理代码对应的字节码的类名和包名来进行加载时由于类名和包名重复导致的加载错误的问题。
S203、删除内存中拦截器对应的类对象。
在本申请实施方式中,在拦截器中基于配置信息,将修改数据处理代码进行补充后加载到内存的同时,删除内存中拦截器对应的类对象;以免内存中出现两个该目标数据处理组件的类对象。
S204、创建修改类对象的实例,得到生成的修改数据处理组件。
在本申请实施方式中,创建修改类对象的实例,即为目标修改数据处理代码对应的类对象进行实例化,实例化对象后就可以得到用于数据处理的目标数据处理组件。具体代码如下:Object instance=clazz.loadClass(fullName,results)。
本申请实施例提供了另一种数据处理组件的生成方法,该方法包括:在执行数据处理任务时,基于拦截器实时获取管理用户发送的目标数据处理组件的代码修改请求;代码修改请求中包含有修改数据处理代码及对应的配置信息;删除内存中拦截器对应的类对象;并在拦截器中基于配置信息,将修改数据处理代码进行补充后加载到内存中,得到目标修改数据处理代码对应的修改类对象;创建修改类对象的实例,得到生成的修改数据处理组件。通过本申请的方式,能够在数据处理任务的执行过程中,对目标数据处理组件的功能进行实时的修改,无需关闭系统,提高了数据处理的效率。
参照图3所示,为本申请实施例提供的另一种数据处理组件的生成方法的流程示意图,下面对本申请实施例示例性的各步骤进行说明:
S301、目标数据处理组件对应的拦截器对数据处理用户发送的待处理数据进行拦截。
在本申请实施方式中,在目标数据处理组件生成后,当有数据需要进行处理时,目标数据处理组件对应的拦截器会将待处理数据进行拦截。待处理数据就是需要目标数据处理组件进行数据处理的数据。
S302、对待处理数据进行与目标数据处理组件对应的数据处理。
本申请实施例中提供了另一种数据处理组件的生成方法,该方法包括:目标数据处理组件对应的拦截器对数据处理用户发送的待处理数据进行拦截;对待处理数据进行与目标数据处理组件对应的数据处理。通过本申请的方式,可以通过生成的目标数据处理组件进行数据处理。
基于同一发明构思,本申请实施例中还提供了与数据处理组件的生成方法对应的数据处理组件的生成装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述数据处理组件的生成方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图4所示,为本申请实施例提供的一种数据处理组件的生成装置的示意图,该数据处理组件的生成装置包括:
获取模块401,用于获取管理用户在待生成数据处理组件对应的代码输入界面,输入的初始数据处理代码,以及初始数据处理代码对应的配置信息;
补充模块402,用于在数据处理任务启动时,在待生成数据处理组件对应的拦截器中基于配置信息补充数据处理代码,得到目标数据处理代码及对应的名称信息;
加载模块403,用于根据名称信息,将目标数据处理代码加载到内存中,得到目标数据处理代码对应的类对象;
创建模块404,用于创建类对象的实例,得到生成的目标数据处理组件。
在一种可能的实施方式中,加载模块403,具体用于根据名称信息,将目标数据处理代码转换为字节码;将字节码加载到内存中,得到目标数据处理代码对应的类对象。
在一种可能的实施方式中,加载模块403,还用于:
判断字节码对应的存储路径下是否存在类加载器;
若字节码对应的存储路径下不存在类加载器,则为字节码对应的存储路径创建类加载器;
通过类加载器将字节码加载到内存中,得到目标数据处理代码对应的类对象。
在一种可能的实施方式中,该数据处理组件的生成装置,还包括:删除模块405、补充加载模块406;
获取模块401,用于在执行数据处理任务时,基于拦截器实时获取管理用户发送的目标数据处理组件的代码修改请求;代码修改请求中包含有修改数据处理代码及对应的配置信息;
补充加载模块406,用于在拦截器中基于配置信息,将修改数据处理代码进行补充后加载到内存中,得到目标修改数据处理代码对应的修改类对象;
删除模块405,用于删除内存中拦截器对应的类对象;
创建模块404,还用于创建修改类对象的实例,得到生成的修改数据处理组件。
在一种可能的实施方式中,该数据处理组件的生成装置,还包括:拦截模块407、数据处理模块408;
拦截模块407,用于目标数据处理组件对应的拦截器对数据处理用户发送的待处理数据进行拦截;
数据处理模块408,用于对待处理数据进行与目标数据处理组件对应的数据处理。
如图5所示,本申请实施例提供的一种电子设备500,包括:处理器501、存储器502和总线,存储器502存储有处理器501可执行的机器可读指令,当电子设备运行时,处理器501与存储器502之间通过总线通信,处理器501执行机器可读指令,以执行如上述数据处理组件的生成方法的步骤。
具体地,上述存储器502和处理器501能够为通用的存储器和处理器,这里不做具体限定,当处理器501运行存储器502存储的计算机程序时,能够执行上述数据处理组件的生成方法。
对应于上述数据处理组件的生成方法,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述数据处理组件的生成方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述信息处理方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据处理组件的生成方法,其特征在于,所述数据处理组件的生成方法包括:
获取管理用户在待生成数据处理组件对应的代码输入界面,输入的初始数据处理代码,以及所述初始数据处理代码对应的配置信息;
在数据处理任务启动时,在所述待生成数据处理组件对应的拦截器中基于所述配置信息补充所述数据处理代码,得到目标数据处理代码及对应的名称信息;
根据所述名称信息,将所述目标数据处理代码加载到内存中,得到所述目标数据处理代码对应的类对象;
创建所述类对象的实例,得到生成的目标数据处理组件。
2.根据权利要求1所述的数据处理组件的生成方法,其特征在于,所述根据所述名称信息,将所述目标数据处理代码加载到内存中,得到所述目标数据处理代码对应的类对象,包括:
根据所述名称信息,将所述目标数据处理代码转换为字节码;
将所述字节码加载到内存中,得到所述目标数据处理代码对应的类对象。
3.根据权利要求2所述的数据处理组件的生成方法,其特征在于,所述将所述字节码加载到内存中,得到所述目标数据处理代码对应的类对象,包括:
判断所述字节码对应的存储路径下是否存在类加载器;
若所述字节码对应的存储路径下不存在类加载器,则为所述字节码对应的存储路径创建类加载器;
通过所述类加载器将所述字节码加载到内存中,得到所述目标数据处理代码对应的类对象。
4.根据权利要求1-3任一项所述的数据处理组件的生成方法,其特征在于,所述数据处理组件的生成方法,还包括:
在执行数据处理任务时,基于拦截器实时获取所述管理用户发送的所述目标数据处理组件的代码修改请求;所述代码修改请求中包含有修改数据处理代码及对应的配置信息;
在所述拦截器中基于所述配置信息,将所述修改数据处理代码进行补充后加载到内存中,得到目标修改数据处理代码对应的修改类对象;
并删除所述内存中所述拦截器对应的类对象;
创建所述修改类对象的实例,得到生成的修改数据处理组件。
5.根据权利要求4所述的数据处理组件的生成方法,其特征在于,所述数据处理组件的生成方法,还包括:
所述目标数据处理组件对应的拦截器对数据处理用户发送的待处理数据进行拦截;
对所述待处理数据进行与所述目标数据处理组件对应的数据处理。
6.一种数据处理组件的生成装置,其特征在于,所述数据处理组件的生成装置包括:
获取模块,用于获取管理用户在待生成数据处理组件对应的代码输入界面,输入的初始数据处理代码,以及所述初始数据处理代码对应的配置信息;
补充模块,用于在数据处理任务启动时,在所述待生成数据处理组件对应的拦截器中基于所述配置信息补充所述数据处理代码,得到目标数据处理代码及对应的名称信息;
加载模块,用于根据所述名称信息,将所述目标数据处理代码加载到内存中,得到所述目标数据处理代码对应的类对象;
创建模块,用于创建所述类对象的实例,得到生成的目标数据处理组件。
7.根据权利要求6所述的数据处理组件的生成装置,其特征在于,所述加载模块,具体用于:
根据所述名称信息,将所述目标数据处理代码转换为字节码;
将所述字节码加载到内存中,得到所述目标数据处理代码对应的类对象。
8.根据权利要求7所述的数据处理组件的生成装置,其特征在于,所述加载模块,还用于:
判断所述字节码对应的存储路径下是否存在类加载器;
若所述字节码对应的存储路径下不存在类加载器,则为所述字节码对应的存储路径创建类加载器;
通过所述类加载器将所述字节码加载到内存中,得到所述目标数据处理代码对应的类对象。
9.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至5任一项所述的数据处理组件的生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至5任一项所述的数据处理组件的生成方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310694211.9A CN116909681A (zh) | 2023-06-13 | 2023-06-13 | 数据处理组件的生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310694211.9A CN116909681A (zh) | 2023-06-13 | 2023-06-13 | 数据处理组件的生成方法、装置、电子设备及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN116909681A true CN116909681A (zh) | 2023-10-20 |
Family
ID=88365751
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202310694211.9A Pending CN116909681A (zh) | 2023-06-13 | 2023-06-13 | 数据处理组件的生成方法、装置、电子设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116909681A (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119917097A (zh) * | 2025-04-03 | 2025-05-02 | 昆山华东信息科技有限公司 | 一种代码名称的转换方法及装置 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111782340A (zh) * | 2020-06-29 | 2020-10-16 | 中国工商银行股份有限公司 | 一种基于字节码的数据处理方法、装置、设备及系统 |
| CN112596932A (zh) * | 2021-01-04 | 2021-04-02 | 天冕信息技术(深圳)有限公司 | 服务注册及拦截方法、装置、电子设备及可读存储介质 |
| WO2022001209A1 (zh) * | 2020-06-30 | 2022-01-06 | 深圳前海微众银行股份有限公司 | 作业执行方法、装置、系统及计算机可读存储介质 |
| CN114610406A (zh) * | 2022-03-02 | 2022-06-10 | 维塔科技(北京)有限公司 | 代码注入方法、装置、存储介质及电子设备 |
| CN115934288A (zh) * | 2022-12-28 | 2023-04-07 | 中国联合网络通信集团有限公司 | 定时任务的管理方法、装置、设备和存储介质 |
-
2023
- 2023-06-13 CN CN202310694211.9A patent/CN116909681A/zh active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111782340A (zh) * | 2020-06-29 | 2020-10-16 | 中国工商银行股份有限公司 | 一种基于字节码的数据处理方法、装置、设备及系统 |
| WO2022001209A1 (zh) * | 2020-06-30 | 2022-01-06 | 深圳前海微众银行股份有限公司 | 作业执行方法、装置、系统及计算机可读存储介质 |
| CN112596932A (zh) * | 2021-01-04 | 2021-04-02 | 天冕信息技术(深圳)有限公司 | 服务注册及拦截方法、装置、电子设备及可读存储介质 |
| CN114610406A (zh) * | 2022-03-02 | 2022-06-10 | 维塔科技(北京)有限公司 | 代码注入方法、装置、存储介质及电子设备 |
| CN115934288A (zh) * | 2022-12-28 | 2023-04-07 | 中国联合网络通信集团有限公司 | 定时任务的管理方法、装置、设备和存储介质 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119917097A (zh) * | 2025-04-03 | 2025-05-02 | 昆山华东信息科技有限公司 | 一种代码名称的转换方法及装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| RU2520344C2 (ru) | Кэширование генерируемого во время выполнения кода | |
| CN111740948B (zh) | 数据包发布方法、动态更新方法、装置、设备及介质 | |
| CN113010181A (zh) | 一种深度学习框架之中算子的部署方法、装置及电子设备 | |
| CN111913741B (zh) | 对象拦截方法、装置、介质及电子设备 | |
| CN107526623B (zh) | 一种数据处理方法及装置 | |
| EP3198452B1 (en) | On-demand loading of dynamic scripting language code for reduced memory usage | |
| CN113805882A (zh) | 应用程序开发的方法、装置、电子设备及存储介质 | |
| US11734054B2 (en) | Techniques for interfacing between media processing workflows and serverless functions | |
| CN113138768B (zh) | 应用程序包生成方法、装置、电子设备以及可读存储介质 | |
| US11301225B2 (en) | Reducing application startup time by generating bytecode from metadata at build time | |
| CN114968200A (zh) | 软件开发工具包组装方法、相关装置及计算机程序产品 | |
| CN111045686A (zh) | 一种提高应用反编译速度的方法、智能终端及存储介质 | |
| WO2023165471A1 (zh) | 一种云平台应用部署方法、装置、电子设备及存储介质 | |
| CN108845864B (zh) | 一种基于spring框架的JVM垃圾回收方法和装置 | |
| CN116909681A (zh) | 数据处理组件的生成方法、装置、电子设备及存储介质 | |
| US11379201B2 (en) | Wrapping method, registration method, device, and rendering apparatus | |
| CN107741850B (zh) | 动态壁纸包的生成方法、装置及存储介质 | |
| CN117519691B (zh) | 应用程序处理方法、装置、计算机设备和存储介质 | |
| CN110262841B (zh) | 一种对字节码进行增强的方法和装置 | |
| CN118246053A (zh) | 应用包加密运行方法、装置、电子设备和存储介质 | |
| CN114168151B (zh) | 基于容器的程序编译方法、装置、电子设备及存储介质 | |
| CN104407864A (zh) | 一种jni层的算法进行多实例调用的封装方法和系统 | |
| CN109976765B (zh) | 一种应用群部署方法、装置、设备和存储介质 | |
| CN114090010A (zh) | X11系统的移植方法、装置、电子设备及可读存储介质 | |
| CN115618396B (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 | ||
| RJ01 | Rejection of invention patent application after publication |
Application publication date: 20231020 |
|
| RJ01 | Rejection of invention patent application after publication |