掌桥专利:专业的专利平台
掌桥专利
首页

一种基于分布式多线程的大数据处理方法及系统

文献发布时间:2023-06-19 11:26:00


一种基于分布式多线程的大数据处理方法及系统

技术领域

本发明涉及计算机技术领域,具体涉及一种基于分布式多线程的大数据处理方法及系统。

背景技术

以往对大数据的处理,为了提高效率,节省时间,采用的是多台机器同时运行处理,需要将数据均等分为机器的份数,每台机器独自处理分配的数据,这样完全性的机器叠加机制对机器的需求量随着数据的增加成倍数的增加,且对机器的复用率很低,容易造成不必要的成本浪费,同时每台机器在处理数据过程如遇到错误就会直接影响到这台机器对应的数据处理的稳定性以及准确性,从而影响整个数据处理的准确性。尤其,在多个智能供应链执行终端与系统服务器之间的数据交互与处理存在以下弊端:

(1)机器需求量大:机器和数据量是倍数的关系,数据量增大,机器就需要成倍数的增加。(2)机器复用率低:数据处理之前根据数据的数量和机器的数量对数据进行均等分组,每台机器按照相同逻辑处理分配给自己的数据,根据分配的数据类型和大小的不同,虽然数据量相同,但每台机器处理的时间各不相同,数据相对简单的机器处理时间较短,处理完成后被搁置,整个任务要等到最后一台机器完成,中间提前完成数据处理的机器只能等待,这样机器的复用率就很低。(3)任务返工率高:一次数据处理任务往往是将所有处理完成才能达到预期处理结果。数据越大,机器越多,处理任务的错误率就会高,一旦出错就将单台任务返工甚至整个任务返工,如此循环,数据出来的效率会大大降低。(4)复杂逻辑的数据处理适用性不强:对于复杂逻辑的数据处理,同一份数据处理的全部逻辑在一台机器上不能全部实现,要通过多台协作进行,这样传统的一条线的数据处理方式就不是很适用。

发明内容

本发明所要解决的技术问题是现有的针对供应链系统大数据处理的方法存在机器需求量大、机器复用率低、任务返工率高和复杂逻辑的数据处理适用性不强等问题。本发明目的在于提供一种基于分布式多线程的大数据处理方法及系统,实现复杂逻辑数据的处理,提升处理机器的复用率,降低处理任务的整体返工率,提升数据处理效率,降低数据处理成本。

本发明通过下述技术方案实现:

第一方面,本发明提供了一种基于分布式多线程的大数据处理方法,包括系统服务器和若干智能执行终端,所述系统服务器包括数据库、优先级队列、生产者线程和消费者线程;该方法包括以下步骤:

S1:系统服务器接收所有待处理的数据任务,并存入数据库;及把从数据库中读取若干条数据任务放入到待处理任务的优先级队列中,等待处理机器来获取进行处理;

S2:系统服务器根据各个智能执行终端的运行状态,调取对应空闲状态的智能执行终端执行所述优先级队列中的待处理任务,且所述智能执行终端把自身的实时运行状态通知所述系统服务器;在执行过程中,若遇到错误则将错误数据任务返回至所述优先级队的首位,等待被调取执行即可。

进一步地,步骤S1具体包括以下步骤:

S11:系统服务器接收所有待处理的数据任务,并存入数据库;

S12:生产者线程实时扫描数据库,并判断优先级队列是否已满,若未满,则进行入队操作,从数据库中读取数据任务放入到所述优先级队列的队尾;如已满,则执行步骤S13;

S13:消费者线程根据所述优先级队列的实时情况,判断优先级队列是否已满,若已满,则进行出队操作,执行步骤S2;如未满,则进行入队操作即可。

进一步地,所述系统服务器包括多个服务器,每个服务器的调度策略公式为:Num=id%total,其中,Num表示被调度的服务器编号,第一台服务器记作0,第二台服务器记作1,其它服务器依次记录即可;id表示服务器id;%表示求余;total表述服务器的总数量。

进一步地,每个所述服务器包括一个优先级队列或者多个优先级队列,且各个优先级队列之间还设有队列间优先级。

进一步地,所述优先级队列的属性包括类型信息、大小信息。

进一步地,所述数据库中存储有数据任务的优先级和时间;所述数据任务的优先级为数据任务的重要程度,包括非常重要、一般重要和不重要。

第二方面,本发明还提供了一种基于分布式多线程的大数据处理系统,该系统包括系统服务器和若干智能执行终端,所述系统服务器包括数据库、优先级队列、生产者线程和消费者线程;

所述数据库,用于存储系统服务器接收的所有待处理的数据任务;

所述优先级队列,用于把从数据库中读取若干条数据任务放入到待处理任务的优先级队列中,等待智能执行终端来获取进行处理;

所述生产者线程,用于实时扫描数据库,并判断优先级队列是否已满,若未满,则进行入队操作,从数据库中读取数据任务放入到所述优先级队列的队尾;如已满,则执行消费者线程流程;

所述消费者线程,用于根据所述优先级队列的实时情况,判断优先级队列是否已满,若已满,则进行出队操作,执行后续调取智能执行终端的过程;如未满,则进行入队操作即可;

系统服务器接收所有待处理的数据任务,并存入数据库;及把从数据库中读取若干条数据任务放入到待处理任务的优先级队列中;系统服务器根据各个智能执行终端的运行状态,调取对应空闲状态的智能执行终端执行所述优先级队列中的待处理任务,且所述智能执行终端把自身的实时运行状态通知所述系统服务器;在执行过程中,若遇到错误则将错误数据任务返回至所述优先级队的首位,等待被调取执行即可。

第三方面,本发明还提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述的一种基于分布式多线程的大数据处理方法。

第四方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现所述的一种基于分布式多线程的大数据处理方法。

本发明与现有技术相比,具有如下的优点和有益效果:

1、本发明主要涉及对多任务数据处理方法进行优化升级,不采取传统的均等分配数据的方式,而是采取队列方式,按需分配的原则,同时任务处理过程中如遇处理错误,将更换智能执行终端(即处理机器)进行处理,这样充分发挥每台机器的效率且大大降低处理的返工率。

2、本发明的核心在于数据队列、提高机器的复用率、降低机器的返工率;1)智能执行终端获得数据任务后进行处理,处理完成再从优先级队列中获取下一条需要处理的数据任务,依次循环直到所有数据任务(除需要人工处理的数据外)处理完成,期间所有智能执行终端都是同步工作,提高了机器的复用率。2)如果处理过程中遇到错误则将错误数据退回优先级队列并排在首位,让其他智能执行终端再行处理,如此数据所有智能执行终端都处理错误则将其放到需要人工处理的度列中,这样就降低了机器的返工率。

3、本发明方法如遇处理过程中需增加数据直接将数据添加到队列中即可,无需额外的部署和重新对机器进行分配。其当复杂逻辑数据处理(及一条数据需多台数据处理),采用多个任务队列形式。

附图说明

此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:

图1为本发明一种基于分布式多线程的大数据处理方法流程图。

图2为本发明计算机设备的一示意图。

具体实施方式

在下文中,可在本发明的各种实施例中使用的术语“包括”或“可包括”指示所发明的功能、操作或元件的存在,并且不限制一个或更多个功能、操作或元件的增加。此外,如在本发明的各种实施例中所使用,术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。

在本发明的各种实施例中,表述“或”或“A或/和B中的至少一个”包括同时列出的文字的任何组合或所有组合。例如,表述“A或B”或“A或/和B中的至少一个”可包括A、可包括B或可包括A和B二者。

在本发明的各种实施例中使用的表述(诸如“第一”、“第二”等)可修饰在各种实施例中的各种组成元件,不过可不限制相应组成元件。例如,以上表述并不限制所述元件的顺序和/或重要性。以上表述仅用于将一个元件与其它元件区别开的目的。例如,第一用户装置和第二用户装置指示不同用户装置,尽管二者都是用户装置。例如,在不脱离本发明的各种实施例的范围的情况下,第一元件可被称为第二元件,同样地,第二元件也可被称为第一元件。

应注意到:如果描述将一个组成元件“连接”到另一组成元件,则可将第一组成元件直接连接到第二组成元件,并且可在第一组成元件和第二组成元件之间“连接”第三组成元件。相反地,当将一个组成元件“直接连接”到另一组成元件时,可理解为在第一组成元件和第二组成元件之间不存在第三组成元件。

在本发明的各种实施例中使用的术语仅用于描述特定实施例的目的并且并非意在限制本发明的各种实施例。如在此所使用,单数形式意在也包括复数形式,除非上下文清楚地另有指示。除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。

实施例1

如图1所示,本发明一种基于分布式多线程的大数据处理方法,包括系统服务器和若干智能执行终端,所述系统服务器包括数据库、优先级队列、生产者线程和消费者线程;该方法包括以下步骤:

S1:系统服务器接收所有待处理的数据任务,并存入数据库;及把从数据库中读取若干条数据任务放入到待处理任务的优先级队列中,等待处理机器来获取进行处理;

S2:系统服务器根据各个智能执行终端的运行状态,调取对应空闲状态的智能执行终端执行所述优先级队列中的待处理任务,且所述智能执行终端把自身的实时运行状态通知所述系统服务器;在执行过程中,若遇到错误则将错误数据任务返回至所述优先级队的首位,等待被调取执行即可。

本发明主要涉及对多任务数据处理方法进行优化升级,不采取传统的均等分配数据的方式,而是采取队列方式,按需分配的原则,同时任务处理过程中如遇处理错误,将更换智能执行终端(即处理机器)进行处理,这样充分发挥每台机器的效率且大大降低处理的返工率。本发明的核心在于数据队列、提高机器的复用率、降低机器的返工率;1)智能执行终端获得数据任务后进行处理,处理完成再从优先级队列中获取下一条需要处理的数据任务,依次循环直到所有数据任务(除需要人工处理的数据外)处理完成,期间所有智能执行终端都是同步工作,提高了机器的复用率。2)如果处理过程中遇到错误则将错误数据退回优先级队列并排在首位,让其他智能执行终端再行处理,如此数据所有智能执行终端都处理错误则将其放到需要人工处理的度列中,这样就降低了机器的返工率。

另外,如遇处理过程中需增加数据直接将数据添加到队列中即可,无需额外的部署和重新对机器进行分配。其当复杂逻辑数据处理(及一条数据需多台数据处理),采用多个任务队列形式。

本实施例中,步骤S1具体包括以下步骤:

S11:系统服务器接收所有待处理的数据任务,并存入数据库;

S12:生产者线程实时扫描数据库,并判断优先级队列是否已满,若未满,则进行入队操作,从数据库中读取数据任务放入到所述优先级队列的队尾;如已满,则执行步骤S13;

S13:消费者线程根据所述优先级队列的实时情况,判断优先级队列是否已满,若已满,则进行出队操作,执行步骤S2;如未满,则进行入队操作即可。

本实施例中,所述系统服务器包括多个服务器,每个服务器的调度策略公式为:Num=id%total,其中,Num表示被调度的服务器编号,第一台服务器记作0,第二台服务器记作1,其它服务器依次记录即可;id表示服务器id;%表示求余;total表述服务器的总数量。

例如,实施时,所述系统服务器包括三个服务器(服务器1、服务器2、服务器3),total=3;且服务器1的Num为0,服务器2的Num为1,服务器3的Num为2;当1%3=1时,使用服务器2执行调度任务;当2%3=2时,使用服务器3执行调度任务;当3%3=0时,使用服务器1执行调度任务;所以当任务一台服务器出现故障时,不影响整体系统服务器的正常运行,解决了系统服务器单点问题。

本实施例中,每个所述服务器包括一个优先级队列或者多个优先级队列,且各个优先级队列之间还设有队列间优先级。

本实施例中,所述优先级队列的属性包括类型信息、大小信息。

本实施例中,所述数据库中存储有数据任务的优先级和时间;所述数据任务的优先级为数据任务的重要程度,包括非常重要、一般重要和不重要。在从数据库中读取数据任务放入优先级队列中时,可以根据数据库中存储的数据任务的优先级程度来决定放入优先级队列中。

实施例2

如图1、图2所示,本实施例与实施例1的区别在于,本实施例提供了一种基于分布式多线程的大数据处理系统,该系统支持实施例1所述的一种基于分布式多线程的大数据处理方法,该系统包括系统服务器和若干智能执行终端,所述系统服务器包括数据库、优先级队列、生产者线程和消费者线程;

所述数据库,用于存储系统服务器接收的所有待处理的数据任务;

所述优先级队列,用于把从数据库中读取若干条数据任务放入到待处理任务的优先级队列中,等待智能执行终端来获取进行处理;

所述生产者线程,用于实时扫描数据库,并判断优先级队列是否已满,若未满,则进行入队操作,从数据库中读取数据任务放入到所述优先级队列的队尾;如已满,则执行消费者线程流程;

所述消费者线程,用于根据所述优先级队列的实时情况,判断优先级队列是否已满,若已满,则进行出队操作,执行后续调取智能执行终端的过程;如未满,则进行入队操作即可;

系统服务器接收所有待处理的数据任务,并存入数据库;及把从数据库中读取若干条数据任务放入到待处理任务的优先级队列中;系统服务器根据各个智能执行终端的运行状态,调取对应空闲状态的智能执行终端执行所述优先级队列中的待处理任务,且所述智能执行终端把自身的实时运行状态通知所述系统服务器;在执行过程中,若遇到错误则将错误数据任务返回至所述优先级队的首位,等待被调取执行即可。

如图2所示,本发明还提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述的一种基于分布式多线程的大数据处理方法。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现所述的一种基于分布式多线程的大数据处理方法。

本发明将大数据以分布式队列的方式进行排列,机器按需取数据进行处理,并做了相应的错误处理机制,形成了一条高效的数据处理生产线。本发明与现有技术相比,本发明提出的技术方案很大程度上提高大数据处理中机器的复用率,采用一任务一数据的方式降低了大数据处理的返工率,分布式队列方式为复杂逻辑数据处理提供了更高效,更简便的解决方案。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种基于分布式多线程的大数据处理方法及系统
  • 一种基于云平台多线程的大数据处理方法及系统
技术分类

06120112923442