一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种工业互联网的业务数据处理方法、设备及介质与流程

2022-06-05 14:18:30 来源:中国专利 TAG:


1.本技术涉及大数据技术领域,具体涉及一种工业互联网的业务数据处理方法、设备及介质。


背景技术:

2.随着大数据技术的不断发展,越来越多的工厂也相继进行了智能化改造。但是随着智能化程度的不断加深,以及智能联网设备数量的不断增多,智能监控、智能生产等应用平台所面临的数据处理压力也随之增大,易导致数据处理过程中发生阻塞,降低数据处理效率,严重时还会引起系统宕机等问题,对工业生产带来不便。


技术实现要素:

3.为了解决上述问题,本技术提出了一种工业互联网的业务数据处理方法,包括:获取工业设备上传的业务信息,并通过ip协议栈对业务信息进行分片,得到分片后的若干数据块;
4.根据预设的流程引擎,确定业务信息对应的多个逻辑处理节点,以及由多个逻辑处理节点组成的主处理流程;其中,各逻辑处理节点分别对应不同的线程池,线程池由多个子线程组成,线程池包括业务逻辑线程池、网络连接线程池和数据库连接线程池;
5.根据数据块的数量,确定当前需调用的子线程数量;
6.按照主处理流程包含的各逻辑处理节点之间的流转逻辑,依次从各逻辑处理节点对应的线程池中,调用与线程数量对应的多个目标子线程;
7.执行目标子线程,以对业务信息对应的若干数据块进行相应的业务逻辑处理。
8.在本技术的一种实现方式中,确定业务信息对应的多个逻辑处理节点之后,方法还包括:
9.针对各逻辑处理节点,建立该逻辑处理节点对应的主线程;
10.将主线程与其对应的逻辑处理节点所包含的多个子线程依次进行绑定,以生成相应的映射关系。
11.在本技术的一种实现方式中,按照主处理流程包含的各逻辑处理节点之间的流转逻辑,依次从各逻辑处理节点对应的线程池中,确定与线程数量对应的多个目标子线程,具体包括:
12.确定业务逻辑线程池对应的第一主线程,根据第一主线程对应的映射关系,将业务信息对应的数据块分配至业务逻辑线程池中的多个第一目标子线程;
13.在多个第一目标子线程均完成其对应的业务逻辑处理后,通过第一主线程,将多个第一目标子线程的第一数据处理结果流转至网络连接线程池对应的第二主线程,并根据第二主线程对应的映射关系,将多个第一目标子线程的数据处理结果,分配至网络连接线程池中的多个第二目标子线程;
14.在多个第二目标子线程均完成其对应的业务逻辑处理后,通过第二主线程,将多
个第二目标子线程的第二数据处理结果流转至数据库连接线程池对应的第三主线程,并根据第三主线程对应的映射关系,将多个第二目标子线程的数据处理结果,分配至数据库连接线程池中的多个第三目标子线程;
15.其中,第一目标子线程、第二目标子线程和第三目标子线程的数量与线程数量相对应,且至少分别对应一个数据块。
16.在本技术的一种实现方式中,确定与线程数量对应的多个目标子线程之后,方法还包括:
17.针对逻辑处理节点,生成业务信息对应的进度标识位,并为进度标识位分配相应的默认值;
18.在逻辑处理节点对应的任一目标子线程完成其对应的业务逻辑处理之后,在默认值的基础上将进度标识位加一;
19.在进度标识位与数据块的数量相等时,确定目标子线程已完成对业务信息的业务逻辑处理。
20.在本技术的一种实现方式中,执行目标子线程,以对业务信息对应的若干数据块进行相应的业务逻辑处理之后,方法还包括:
21.获取目标子线程的开始执行时间;
22.根据开始执行时间,确定目标子线程的已执行时长,若已执行时长大于预设执行时长,则发送超时提示信息至流程引擎,以根据超时提示信息停用当前正在执行的目标子线程。
23.在本技术的一种实现方式中,获取业务设备上传的业务信息之前,方法还包括:
24.在业务信息对应的处理任务为非实时任务的情况下,确定业务信息对应的任务优先级;
25.按照任务优先级的顺序,将业务信息添加至对应的任务队列中,并生成业务信息对应的优先级标识,以根据优先级标识,在预设处理时间时按照任务优先级,从任务队列中获取待处理的业务信息。
26.在本技术的一种实现方式中,获取业务设备上传的业务信息之前,方法还包括:
27.确定流程引擎部署的服务器硬件指标;其中,硬件指标包括中央处理器数量以及单个中央处理器的核数;
28.根据中央处理器数量以及单个中央处理器的核数,确定流程引擎对应的多个中央处理器核。
29.在本技术的一种实现方式中,针对各逻辑处理节点,建立该逻辑处理节点对应的主线程,具体包括:
30.从多个中央处理器核中,确定与各逻辑处理节点的数量相匹配的多个第一中央处理器核;
31.建立逻辑处理节点对应的主线程,并将主线程与第一中央处理器核进行绑定;
32.将主线程与其对应的逻辑处理节点所包含的多个子线程依次进行绑定之前,方法还包括:
33.针对各逻辑处理节点,建立其对应的多个子线程;
34.从多个中央处理器核中,确定除多个第一中央处理器核之外的多个第二中央处理
器核,并将多个第二中央处理器核依次与多个子线程进行绑定。
35.本技术实施例提供了一种工业互联网的业务数据处理设备,设备包括:
36.至少一个处理器;以及,
37.与至少一个处理器通信连接的存储器;其中,
38.存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:
39.获取工业设备上传的业务信息,并通过ip协议栈对业务信息进行分片,得到分片后的若干数据块;
40.根据预设的流程引擎,确定业务信息对应的多个逻辑处理节点,以及由多个逻辑处理节点组成的主处理流程;其中,各逻辑处理节点分别对应不同的线程池,线程池由多个子线程组成,线程池包括业务逻辑线程池、网络连接线程池和数据库连接线程池;
41.根据数据块的数量,确定当前需调用的子线程数量;
42.按照主处理流程包含的各逻辑处理节点之间的流转逻辑,依次从各逻辑处理节点对应的线程池中,调用与线程数量对应的多个目标子线程;
43.执行目标子线程,以对业务信息对应的若干数据块进行相应的业务逻辑处理。
44.本技术实施例提供了一种非易失性计算机存储介质,存储有计算机可执行指令,计算机可执行指令设置为:
45.获取工业设备上传的业务信息,并通过ip协议栈对业务信息进行分片,得到分片后的若干数据块;
46.根据预设的流程引擎,确定业务信息对应的多个逻辑处理节点,以及由多个逻辑处理节点组成的主处理流程;其中,各逻辑处理节点分别对应不同的线程池,线程池由多个子线程组成,线程池包括业务逻辑线程池、网络连接线程池和数据库连接线程池;
47.根据数据块的数量,确定当前需调用的子线程数量;
48.按照主处理流程包含的各逻辑处理节点之间的流转逻辑,依次从各逻辑处理节点对应的线程池中,调用与线程数量对应的多个目标子线程;
49.执行目标子线程,以对业务信息对应的若干数据块进行相应的业务逻辑处理。
50.本技术实施例提供的一种工业互联网的业务数据处理方法能够带来如下有益效果:
51.对业务信息进行分片得到若干数据块,通过预设的流程引擎所确定的主处理流程,对数据块进行处理流程的流转,并通过各逻辑处理节点对应的子线程对数据块进行相应的业务逻辑处理,使得主处理流程中包含的多个逻辑处理节点仅用于处理流程之间的流转,而具体的逻辑处理功能则分配给子线程去进行,在降低了主处理流程的处理压力的同时,也提供了更强的并发处理能力,提高了业务数据的处理性能。
附图说明
52.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
53.图1为本技术实施例提供的一种工业互联网的业务数据处理方法的流程示意图;
54.图2为本技术实施例提供的一种通用业务数据处理流程示例图;
55.图3为本技术实施例提供的一种优化业务数据处理流程示例图;
56.图4为本技术实施例提供的一种工业互联网的业务数据处理设备的结构示意图。
具体实施方式
57.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
58.以下结合附图,详细说明本技术各实施例提供的技术方案。
59.如图1所示,本技术实施例提供的一种工业互联网的业务数据处理方法,包括:
60.s101:获取工业设备上传的业务信息,并通过ip协议栈对业务信息进行分片,得到分片后的若干数据块。
61.业务信息是指接入到工业互联网中的工业设备在运行过程中,上传至流程引擎的业务请求信息,比如,请求查询设备状态数据、请求写入生产数据等。流程引擎是在微服务架构下通过编程语言(比如,java)编写的轻量级业务流程引擎,能够按照设定好的固定流程去驱动业务流程之间的流转。流程引擎在接收到业务信息后,需对上传的业务信息进行解析处理,以此实现相应业务逻辑的执行和流转。
62.服务器需从任务队列中获取工业设备上传的业务信息,而业务信息对应的处理任务包括实时任务和非实时任务。对于实时任务来说,当设备上传业务信息至流程引擎之后,服务器便立即从任务队列中获取待处理的业务信息,然后对业务信息进行后续处理。而对于非实时任务来说,其任务的处理时间是固定的,因此,服务器在接收到业务信息之后,首先需确定该业务信息对应的任务优先级,然后按照任务优先级的顺序,将业务信息添加至对应的任务队列中,并生成该业务信息对应的优先级标识,这样便可以根据优先级标识,在到达预设处理时间时,按照任务优先级,从任务队列中获取待处理的业务信息。设置任务队列,可以将数据处理任务等待到预设时间时再执行,这样能够避免主处理流程发生阻塞,而设置优先级则考虑到了实际的业务需求,实用性更强。
63.工厂内的业务信息大多为大批量数据,为降低流程引擎的处理压力,流程引擎所部署的服务器在接收到上传的业务信息之后,需通过ip协议栈对业务信息进行分片,得到分片后的若干数据块。需要说明的是,分片可以是均匀分片,也可以根据当前流程引擎中的空闲线程数,将业务信息划分为不同大小的数据块。
64.s102:根据预设的流程引擎,确定业务信息对应的多个逻辑处理节点,以及由多个逻辑处理节点组成的主处理流程;其中,各逻辑处理节点分别对应不同的线程池,线程池由多个子线程组成,线程池包括业务逻辑线程池、网络连接线程池和数据库连接线程池。
65.业务处理流程可大致分为以下步骤:业务逻辑处理、网络连接和数据库连接。服务器在解析出业务信息对应的业务逻辑之后,在执行业务逻辑的过程中,需通过确定网络连接逻辑来调用不同的i/o接口,并通过数据库调用逻辑实现与数据库之间的交互,最终完成对业务信息的处理。因此,在服务器接收到设备上传的业务信息并对业务信息进行分片之后,需根据流程引擎中预设的业务流程,确定出当前业务信息所要进行的逻辑处理流程(也就是主处理流程)以及对应的多个逻辑处理节点。
66.上述主处理流程仅为流程引擎驱动的流程流转逻辑,不包括实际的业务数据处理逻辑,而具体的业务逻辑处理由线程负责,这样可以降低主处理流程的处理压力,提高流程引擎的并发处理能力。
67.在一个实施例中,流程引擎所部署的服务器上运行有数据处理进程,流程引擎能够确定其部署的服务器硬件指标,比如中央处理器(central processing unit,cpu)数量以及单个cpu的核数,并根据cpu数量和单个cpu的核数之间的乘积,确定其对应的中央处理器核数。一个中央处理器核用于运行一个线程,因此,中央处理器核数也就决定了流程引擎可运行的数据处理线程数量n。数据处理线程分为主线程和子线程两种,其中,主线程对应逻辑处理节点,负责业务信息的流程流转,由流程引擎根据特定的触发条件驱动,子线程则是各逻辑处理节点用于处理其对应的业务逻辑时所需调用的线程,负责具体的业务逻辑处理,可以多并发执行任务。
68.在一个实施例中,在服务器确定业务信息对应的多个逻辑处理节点之后,需从多个中央处理器核中,确定与各逻辑处理节点的数量a相匹配的多个第一中央处理器核,在确定出多个第一中央处理器核之后,建立各逻辑处理节点分别对应的主线程,并将主线程与第一中央处理器核依次进行绑定,这样主线程便可运行于第一中央处理器核上。上述建立的主线程分别对应业务逻辑处理、网络连接和数据库连接的逻辑处理节点,可以实现不同逻辑处理节点之间的流程流转。
69.在建立完主线程之后,服务器需进一步针对各逻辑处理节点,为主线程建立其对应的各子线程,以在接收到数据流转请求时,能够将业务信息分发至对应的子线程中进行相应的逻辑处理。具体地,服务器可从多个中央处理器核中,确定除多个第一中央处理器核之外的多个第二中央处理器核,然后将多个第二中央处理器核依次与多个子线程进行绑定,这样,子线程便可运行于第二中央处理器核上,进行相应的业务逻辑处理。
70.在建立完主线程和子线程之后,服务器需将主线程与其对应的逻辑处理节点所包含的多个子线程依次进行绑定,从而生成相应的映射关系。由于业务信息的主处理流程与具体的业务逻辑处理是分离开的,为实现完整的数据处理过程,在业务信息流转到逻辑处理节点之后,还需确定出该逻辑处理节点对应的子线程,而映射关系便能够根据该逻辑处理节点对应的主线程匹配出相应的子线程。
71.s103:根据数据块的数量,确定当前需调用的子线程数量。
72.单个线程负责处理单个数据块中携带的数据,因此,服务器在对业务信息进行分片后,需根据数据块的数量,确定当前需调用的子线程数量。其中,各子线程至少对应一个数据块。
73.s104:按照主处理流程包含的各逻辑处理节点之间的流转逻辑,依次从各逻辑处理节点对应的线程池中,调用与线程数量对应的多个目标子线程。
74.在建立完主线程和子线程之后,服务器可按照各逻辑处理节点之间的流转逻辑,依次将数据流转至对应的逻辑处理节点,并在各逻辑处理节点处,通过调用其对应的线程池中的目标子线程,进行相应的业务逻辑处理。需要说明的是,各逻辑处理节点需调用的目标子线程数量都是相同的。
75.s105:执行目标子线程,以对业务信息对应的若干数据块进行相应的业务逻辑处理。
76.在一个实施例中,逻辑处理节点对应的线程池按照流转逻辑,依次为业务逻辑线程池、网络连接线程池和数据库连接线程池。在确定好各逻辑处理节点对应的目标子线程之后,服务器便能够按照主处理流程的流转逻辑,依次将数据块流转至对应的逻辑处理节点,并通过执行上述逻辑处理节点对应的目标子线程,对多个数据块并发进行相应的业务逻辑处理。
77.具体地,服务器在获取到确定需要调用的子线程数量之后,首先,确定业务逻辑线程池对应的第一主线程,根据第一主线程对应的映射关系,将业务信息对应的数据块分配至该业务逻辑线程池中的多个第一目标子线程。然后,在多个第一目标子线程均完成其对应的业务逻辑处理后,通过第一主线程,将多个第一目标子线程的第一数据处理结果流转至网络连接线程池对应的第二主线程,并根据第二主线程对应的映射关系,将多个第一目标子线程的数据处理结果分配至网络连接线程池中的多个第二目标子线程。最后,在多个第二目标子线程均完成其对应的业务逻辑处理后,通过第二主线程,将多个第二目标子线程的第二数据处理结果流转至数据库连接线程池对应的第三主线程,并根据第三主线程对应的映射关系,将多个第二目标子线程的数据处理结果分配至数据库连接线程池中的多个第三目标子线程。
78.而要确定目标子线程是否已对全部数据块完成了数据处理,需通过业务信息中携带的进度标识位来实现。在确定业务信息对应的目标子线程之后,服务器可针对逻辑处理节点,生成该业务信息对应的进度标识位,并为进度标识位分配相应的默认值,该默认值通常设为0。进度标识位用于记录当前业务信息的处理进度,在逻辑处理节点对应的任一目标子线程完成其对应的业务逻辑处理之后,便在默认值的基础上将进度标识位加一。若进度标识位与数据块的数量相等,此时,便确定当前目标子线程已完成对该业务信息的业务逻辑处理,可将其处理结果流转至下一逻辑处理节点,以进行下一阶段的业务逻辑处理。
79.在一个实施例中,服务器可通过设置监听事件,对当前正在执行的目标子线程的状态进行监听。在目标子线程开始执行之后,服务器需获取其开始执行时间,然后根据该开始执行时间和当前时间,确定目标子线程的已执行时长。如果已执行时长大于预设执行时长,则说明在预设的线程执行时间内,目标子线程并未及时向流程引擎发送响应信息,此时目标子线程应发生了异常,需发送超时提示信息至流程引擎,这样,流程引擎在接收到该超时提示信息后,便可停用当前正在执行的目标子线程,防止其占用处理资源,造成资源浪费。
80.图2为本技术实施例提供的一种通用业务数据处理流程示例图,如图2所示,通用的业务数据处理流程一般采用的是每个逻辑处理节点在负责业务逻辑处理的基础上,同时还负责业务处理流程的流转功能。图3为本技术实施例提供的一种优化处理流程示例图,如图3所示,通过本技术实施例提供的优化业务数据处理流程,可将流程流转逻辑与业务逻辑分离开来,主处理流程负责业务处理流程的流转功能,而具体的业务逻辑处理功能则由线程池中的子线程去进行。线程池包括业务逻辑线程池、网络i/o线程池(即网络连接线程池)和数据库i/o连接池(即数据库连接池),每一线程池均由其对应的多个子线程组成,在业务数据的处理过程中,可依次通过调用业务逻辑线程池、网络i/o线程池和数据库i/o连接池中的子线程进行相应的业务逻辑处理。
81.以上为本技术提出的方法实施例。基于同样的思路,本技术的一些实施例还提供
了上述方法对应的设备和非易失性计算机存储介质。
82.图4为本技术实施例提供的一种工业互联网的业务数据处理设备的结构示意图。如图4所示,包括:
83.至少一个处理器;以及,
84.至少一个处理器通信连接的存储器;其中,
85.存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:
86.获取工业设备上传的业务信息,并通过ip协议栈对业务信息进行分片,得到分片后的若干数据块;
87.根据预设的流程引擎,确定业务信息对应的多个逻辑处理节点,以及由多个逻辑处理节点组成的主处理流程;其中,各逻辑处理节点分别对应不同的线程池,线程池由多个子线程组成,线程池包括业务逻辑线程池、网络连接线程池和数据库连接线程池;
88.根据数据块的数量,确定当前需调用的子线程数量;
89.按照主处理流程包含的各逻辑处理节点之间的流转逻辑,依次从各逻辑处理节点对应的线程池中,调用与线程数量对应的多个目标子线程;
90.执行目标子线程,以对业务信息对应的若干数据块进行相应的业务逻辑处理。
91.本技术实施例还提供了一种非易失性计算机存储介质,存储有计算机可执行指令,计算机可执行指令设置为:
92.获取工业设备上传的业务信息,并通过ip协议栈对业务信息进行分片,得到分片后的若干数据块;
93.根据预设的流程引擎,确定业务信息对应的多个逻辑处理节点,以及由多个逻辑处理节点组成的主处理流程;其中,各逻辑处理节点分别对应不同的线程池,线程池由多个子线程组成,线程池包括业务逻辑线程池、网络连接线程池和数据库连接线程池;
94.根据数据块的数量,确定当前需调用的子线程数量;
95.按照主处理流程包含的各逻辑处理节点之间的流转逻辑,依次从各逻辑处理节点对应的线程池中,调用与线程数量对应的多个目标子线程;
96.执行目标子线程,以对业务信息对应的若干数据块进行相应的业务逻辑处理。
97.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
98.本技术实施例提供的设备和介质与方法是一一对应的,因此,设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。
99.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
100.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
101.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
102.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
103.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
104.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
105.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
106.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
107.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献