CN108733469A - 一种分布式系统任务执行的方法和装置 - Google Patents
一种分布式系统任务执行的方法和装置 Download PDFInfo
- Publication number
- CN108733469A CN108733469A CN201710270128.3A CN201710270128A CN108733469A CN 108733469 A CN108733469 A CN 108733469A CN 201710270128 A CN201710270128 A CN 201710270128A CN 108733469 A CN108733469 A CN 108733469A
- Authority
- CN
- China
- Prior art keywords
- task
- execution
- result
- promoter
- implementing result
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种分布式系统任务执行的方法和装置,能够将控制任务流和结果数据流分离开来,解决了任务调度者的系统瓶颈问题,减少了系统资源消耗,提高了系统可靠性。本发明的分布式系统任务执行的方法,包括:任务发起者创建任务并将任务发送给任务调度者;任务调度者接收任务并将任务分发给任务处理者;任务处理者接收并执行任务,并保存任务的执行结果;任务发起者从保存的执行结果中获取任务的执行结果。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种分布式系统任务执行的方法和装置。
背景技术
分布式任务处理系统是为了提高任务的并行处理速度,将多个自主的、相互连接的计算机在一个高级操作系统协调下共同完成同一任务的计算机系统。
现有的分布式任务处理系统以Gearman为例,如图1所示,是现有的Gearman任务分发系统的实现原理框图。一个Gearman任务的处理过程涉及三个角色:Client、JobServer和Worker。其中:
Client,任务的发起者,创建需要被执行的任务然后发送给任务的调度者JobServer;
JobServer,任务的调度者,用来负责协调把任务的发起者Client发出的任务请求转发给合适的任务的处理者Worker执行,并在Worker出现异常的时候重新派发任务,JobServer只负责分派任务,无业务处理逻辑;
Worker,任务的处理者,真正执行任务的角色,接收到JobServer分派的任务后,调用相应的代理商Agent来完成工作。
在图1所示的Gearman任务分发系统中,任务的流向如图1中实线所示,是按照Client→Job Server→Worker的顺序,而相应的结果数据流向如图1中的虚线所示,是按照Worker→Job Server→Client的顺序反方向往上层流动的。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
1、JobServer是整个系统中负载最重的节点,单机性能会严重影响整个系统的性能;
2、Client、JobServer、Worker之间的通信会带来大量的系统资源消耗,当Client需要多次获取结果数据时,会带来巨大的系统负担;
3、系统可靠性低,如果Worker故障,会影响在该Worker上运行的历史数据的获取。
发明内容
有鉴于此,本发明实施例提供一种分布式系统任务执行的方法和装置,能够将控制任务流和结果数据流分离开来,解决了任务调度者的系统瓶颈问题,减少了系统资源消耗,提高了系统可靠性。
为实现上述目的,根据本发明实施例的一个方面,提供了一种分布式系统任务执行的方法。
一种分布式系统任务执行的方法,包括:任务发起者创建任务并将所述任务发送给任务调度者;所述任务调度者接收所述任务并将所述任务分发给任务处理者;所述任务处理者接收并执行所述任务,并保存所述任务的执行结果;所述任务发起者从保存的所述执行结果中获取所述任务的执行结果。
可选地,所述任务的执行结果是通过按照预定的结果处理规则对所述任务的执行日志进行处理得到。
可选地,所述结果处理规则包括:从所述执行日志中抽取所述任务对应的数据字段,并将所述数据字段作为所述任务的执行结果。
可选地,还包括:根据所述执行日志监控所述任务的执行状态,并当所述执行日志出现异常时进行异常处理以及向所述任务发起者发送预警消息。
可选地,所述任务发起者通过轮询的方式获取所述任务的执行结果。
可选地,所述任务发起者根据所述任务处理者发来的所述任务执行完成的通知,从所述保存的执行结果中获取所述任务的执行结果。
可选地,所述任务发起者通过接收所述任务处理者发来的执行结果的方式获取所述任务的执行结果。
根据本发明实施例的另一个方面,提供了一种分布式系统任务执行的装置。
一种分布式系统任务执行的装置,包括:任务创建模块,用于任务发起者创建任务并将所述任务发送给任务调度者;任务分发模块,用于所述任务调度者接收所述任务并将所述任务分发给任务处理者;任务处理模块,用于所述任务处理者接收并执行所述任务,并保存所述任务的执行结果;结果获取模块,用于所述任务发起者从保存的所述执行结果中获取所述任务的执行结果。
可选地,所述任务的执行结果是通过按照预定的结果处理规则对所述任务的执行日志进行处理得到。
可选地,所述结果处理规则包括:从所述执行日志中抽取所述任务对应的数据字段,并将所述数据字段作为所述任务的执行结果。
可选地,还包括监控预警模块,用于:根据所述执行日志监控所述任务的执行状态,并当所述执行日志出现异常时进行异常处理以及向所述任务发起者发送预警消息。
可选地,所述任务发起者通过轮询的方式获取所述任务的执行结果。
可选地,所述任务发起者根据所述任务处理者发来的所述任务执行完成的通知,从所述保存的执行结果中获取所述任务的执行结果。
可选地,所述任务发起者通过接收所述任务处理者发来的执行结果的方式获取所述任务的执行结果。
根据本发明实施例的又一个方面,提供了一种分布式系统任务执行的电子设备。
一种分布式系统任务执行的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所提供的分布式系统任务执行的方法。
根据本发明实施例的再一个方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的分布式系统任务执行的方法。
上述发明中的一个实施例具有如下优点或有益效果:
通过将任务控制流和结果数据流分离开来,使任务发起者可以越过任务调度者和任务处理者直接获取任务的执行结果,从而减轻了任务调度者和任务处理者的负担,解决了任务调度者的系统瓶颈问题,减少了系统资源消耗,提高了系统的可靠性,同时简化了任务调度者和任务处理者的职责,方便系统维护和扩展。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是现有的Gearman任务分发系统的实现原理框图;
图2是根据本发明实施例的分布式系统任务执行的方法的主要步骤示意图;
图3是本发明一个实施例的分布式系统任务执行的原理结构图;
图4是根据本发明实施例的分布式系统任务执行的装置的主要模块示意图;
图5是适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
如现有技术中所描述的Gearman任务分发系统,其主要的缺点表现在以下三个方面:
1、JobServer处在Client和Worker之间,负责任务的分发和任务执行结果的返回,是整个系统中负载最重的节点,单机性能会严重影响整个系统的性能;
2、Client、JobServer、Worker之间的通信都建立在TCP的基础上,使用TCP的长链接,因此引起了大量系统资源的消耗,如果Client需要多次获取结果数据,必须经过JobServer和Worker执行,系统负担也是巨大的;
3、在系统可靠性上,如果Worker挂掉,会影响在该Worker上运行的历史数据的获取,如果JobServer出现故障,则整个系统将瘫痪,即使之前分发的任务已经成功执行,Client也获取不到相应的结果数据。
为了解决现有技术中存在的问题,本发明的技术方案在现有的分布式任务分发处理系统的基础上进行了改进,通过将控制任务流和结果数据流分离开来,Worker在执行完分配的任务后直接将结果数据保存到数据库,Client直接从数据库中获取任务的执行结果,实现了Client无须通过JobServer和Worker便可直接获取结果数据,从而减轻了JobServer和Worker的负担,且解决了JobServer的系统瓶颈问题。
图2是根据本发明实施例的分布式系统任务执行的方法的主要步骤示意图。如图2所示,本发明实施例的分布式系统任务执行的方法主要包括如下的步骤S21至步骤S24。
步骤S21:任务发起者创建任务并将任务发送给任务调度者;
步骤S22:任务调度者接收任务并将任务分发给任务处理者;
步骤S23:任务处理者接收并执行任务,并保存任务的执行结果;
步骤S24:任务发起者从保存的执行结果中获取任务的执行结果。
根据本发明实施例的技术方案,任务的执行结果是通过按照预定的结果处理规则对任务的执行日志进行处理得到。任务处理者在执行任务时,会保存执行日志,其中,执行日志中例如可以包括任务的执行时间、执行者的标识信息、以及执行结果等。
其中,结果处理规则包括:从执行日志中抽取任务对应的数据字段,并将数据字段作为任务的执行结果。例如任务处理者执行任务后有多个字段的结果数据,根据该任务对应的业务类型,以及预先定义的不同的业务类型需要抽取的字段,确定该任务的执行结果中包含的数据字段。其中,预先定义的不同的业务类型需要抽取的字段例如是:任务处理者执行任务后有A、B、C、D、E五个字段的结果数据,业务1需抽取A、B、D字段,业务2需抽取B、C、E字段等等。
另外,本发明实施例的分布式系统任务执行的方法还可以包括:根据执行日志监控任务的执行状态,并当执行日志出现异常时进行异常处理以及向任务发起者发送预警消息,以便任务发起者在任务执行过程中能获取到任务执行的情况。
其中,异常情况主要可以包括两方面:一是运行时异常,指的是日志中出现错误信息或者异常堆栈;二是资源类异常,包括系统宕机,CPU、内存或者其他资源告警等。对于出现异常后的异常处理,如果是运行时异常,则直接中断任务;如果是资源类异常,则可以调用其他正常的任务处理者来重新执行任务。
向任务发起者发送的预警消息例如可以通过异步消息的形式推送到任务发起者,并且,任务发起者在接收到预警消息后会中断当前异常任务的执行。
根据本发明的实施例,任务发起者可以通过轮询的方式获取任务的执行结果。或者,任务发起者也可以根据任务处理者发来的任务执行完成的通知,从保存的执行结果中获取任务的执行结果。同样地,任务发起者也可以通过接收任务处理者发来的执行结果的方式获取任务的执行结果。
根据如上所述的步骤S21至步骤S24,通过将任务控制流和结果数据流分离开来,使任务发起者可以越过任务调度者和任务处理者直接获取任务的执行结果,从而减轻了任务调度者和任务处理者的负担,解决了任务调度者的系统瓶颈问题,减少了系统资源消耗,提高了系统的可靠性,同时简化了任务调度者和任务处理者的职责,方便系统维护和扩展。
图3是本发明一个实施例的分布式系统任务执行的原理结构图。如图3所示,在该实施例中,任务控制流向为图中实线所示,按照任务发起者Client→任务调度者JobServer→任务处理者Worker的顺序,由任务发起者创建任务并发送给任务调度者,任务调度者将任务分发给任务处理者以执行任务,最后,通过增加结果处理引擎节点,使任务处理者Worker在执行完分配的任务后调用结果处理引擎的接口将执行结果保存在数据库里。此处,保存执行结果的数据库可以是与保存任务的数据库为同一个数据库。
其中,该实施例中任务发起者Client可以通过轮询结果处理引擎获取相应任务的执行状态和执行结果;也可以由结果处理引擎在任务执行完成时发送消息通知任务发起者Client,以便任务发起者Client从数据库中获取相应任务的执行状态和执行结果;还可以由结果处理引擎在任务执行完成时直接将任务的执行结果发送给任务发起者Client。
采用该实施例所述的技术方案,系统中任务发起者、任务调度者、任务处理者和结果处理引擎各个部分之间的职责更加单一简单,从而可以减小系统开销。
本发明实施例中所提到的结果处理引擎,主要用于保存任务处理者执行完成后的执行结果,以便任务发起者进行获取。该实施例通过将任务处理者执行过程的执行日志进行保存,并对执行日志进行处理,从而获取到任务的执行结果,然后将执行结果保存到数据库中。因此,结果处理引擎仅需要与任务处理者Worker和任务发起者Client进行数据交互即可。
根据功能实现,结果处理引擎可以包括规则定义模块、日志接收模块、结果处理模块、结果发送模块、结果存储模块和监控预警模块。这几个模块协同配合完成日志及结果信息的处理以及持久化保存。为了保障系统运行的可靠性,结果处理引擎可以使用集群进行建设,并使用任务调度者JobServer来管理集群,同时也可以增加各个结果处理引擎之间的心跳,并增加集群调度模块使其内部自发进行集群管理。
其中,规则定义模块用于定义任务处理者Worker同结果处理引擎之间的交互规则、结果处理引擎同任务发起者Client之间的交互规则,以及结果处理规则。任务处理者Worker同结果处理引擎之间的交互规则例如:任务处理者Worker向结果处理引擎推送日志信息或者结果处理引擎向任务处理者Worker请求获取日志信息;任务发起者Client同结果处理引擎之间的交互规则例如:任务发起者Client从结果处理引擎拉取结果数据或者结果处理引擎向任务发起者Client推送数据,实现方式可以通过套接字Socket、异步消息队列等形式;结果处理规则例如针对不同任务对应的业务类型,从执行日志中抽取需要的字段数据。
日志接收模块用于接收任务处理者Worker运行过程中,已经运行完成的执行日志,以便对执行日志进行处理以得到任务的执行结果。
结果处理模块用于根据结果处理规则获取不同业务类型的任务的执行结果,在接收到任务处理者Worker的执行日志后,对执行日志进行处理以获取任务的执行结果,并为执行结果的持久化做准备。
结果发送模块用于根据结果处理引擎与任务发起者Client之间的交互规则,在收到任务发起者Client的结果获取请求后,将结果处理模块得到的执行结果以消息的形式发送到任务发起者Client;或者在任务执行完成后,直接将执行结果发送给任务发起者Client。
结果存储模块是数据持久化层,用于持久化任务的执行结果到数据库中。
监控预警模块用于根据执行日志监控任务处理者Worker对任务的执行状态,并当执行日志出现异常时负责异常处理和发送预警消息到任务发起者Client,保证任务发起者Client在任务执行过程中能获取到任务执行情况。其中,异常情况主要可以包括两方面:一是运行时异常,指的是日志中出现错误信息或者异常堆栈;二是资源类异常,包括系统宕机,CPU、内存或者其他资源告警等。对于出现异常后的异常处理,如果是运行时异常,则直接中断任务;如果是资源类异常,则可以调用其他正常的任务处理者来重新执行任务。
根据前面实施例中所介绍的分布式系统,其在进行任务执行时任务控制流向如图3中实线所示,包括任务发起者Client→任务调度者JobServer→任务处理者Worker和任务发起者Client→结果处理引擎;结果数据流向如图3中虚线所示,为任务处理者Worker→结果处理引擎→任务发起者Client。
任务发起者Client提交任务到任务调度者JobServer,任务调度者JobServer负责协调调度将任务分配给多个任务处理者Worker执行。在任务执行过程中,任务发起者Client和任务调度者JobServer节点不再处理执行结果。任务处理者Worker将任务的执行日志(包含执行结果)发送给结果处理引擎,同时结果处理引擎根据执行日志反向监控任务处理者Worker。任务发起者Client可以通过轮询的方式从结果处理引擎获取任务的执行情况,或者当结果处理引擎获取执行结果后通过消息机制将执行结果发送给任务发起者Client;或者当结果处理引擎获取执行结果后向任务发起者Client发送任务执行完成的通知,以便任务发起者Client从保存的执行结果中获取任务的执行结果。
图4是根据本发明实施例的分布式系统任务执行的装置的主要模块示意图。如图4所示,本发明实施例的分布式系统任务执行的装置40主要包括任务创建模块41、任务分发模块42、任务处理模块43和结果获取模块44。
任务创建模块41用于任务发起者创建任务并将任务发送给任务调度者;
任务分发模块42用于任务调度者接收任务并将任务分发给任务处理者;
任务处理模块43用于任务处理者接收并执行任务,并保存任务的执行结果;
结果获取模块44用于任务发起者从保存的执行结果中获取任务的执行结果。
根据本发明的实施例,任务的执行结果是通过按照预定的结果处理规则对任务的执行日志进行处理得到。
并且,结果处理规则例如包括:从执行日志中抽取任务对应的数据字段,并将数据字段作为任务的执行结果。
另外,本发明实施例的分布式系统任务执行的装置40还可以包括监控预警模块(图中未示出),用于:根据执行日志监控任务的执行状态,并当执行日志出现异常时进行异常处理以及向任务发起者发送预警消息。
根据本发明实施例的技术方案,任务发起者可以通过轮询的方式获取任务的执行结果。
另外,任务发起者还可以根据任务处理者发来的任务执行完成的通知,从保存的执行结果中获取任务的执行结果。
同样地,任务发起者还可以通过接收任务处理者发来的执行结果的方式获取任务的执行结果。
根据本发明实施例的技术方案,通过将任务控制流和结果数据流分离开来,使任务发起者可以越过任务调度者和任务处理者直接获取任务的执行结果,从而减轻了任务调度者和任务处理者的负担,解决了任务调度者的系统瓶颈问题,减少了系统资源消耗,提高了系统的可靠性,同时简化了任务调度者和任务处理者的职责,方便系统维护和扩展。
根据本发明的实施例,本发明还提供了一种电子设备和一种可读存储介质。
本发明的分布式系统任务执行的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明所提供的分布式系统任务执行的方法。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明所提供的分布式系统任务执行的方法。
下面参考图5,其示出了适于用来实现本发明实施例的电子设备的计算机系统500的结构示意图。图5示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文主要步骤图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和/或框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括任务创建模块、任务分发模块、任务处理模块和结果获取模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,任务创建模块还可以被描述为“任务发起者创建任务并将任务发送给任务调度者的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:任务发起者创建任务并将所述任务发送给任务调度者;所述任务调度者接收所述任务并将所述任务分发给任务处理者;所述任务处理者接收并执行所述任务,并保存所述任务的执行结果;所述任务发起者从保存的所述执行结果中获取所述任务的执行结果。
根据本发明实施例的技术方案,通过将任务控制流和结果数据流分离开来,使任务发起者可以越过任务调度者和任务处理者直接获取任务的执行结果,从而减轻了任务调度者和任务处理者的负担,解决了任务调度者的系统瓶颈问题,减少了系统资源消耗,提高了系统的可靠性,同时简化了任务调度者和任务处理者的职责,方便系统维护和扩展。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (16)
1.一种分布式系统任务执行的方法,其特征在于,包括:
任务发起者创建任务并将所述任务发送给任务调度者;
所述任务调度者接收所述任务并将所述任务分发给任务处理者;
所述任务处理者接收并执行所述任务,并保存所述任务的执行结果;
所述任务发起者从保存的所述执行结果中获取所述任务的执行结果。
2.根据权利要求1所述的方法,其特征在于,保存所述任务的执行结果之前,还包括:
根据预定的结果处理规则对所述任务的执行日志进行处理,以得到所述任务的执行结果。
3.根据权利要求2所述的方法,其特征在于,所述结果处理规则包括:从所述执行日志中抽取所述任务对应的数据字段,并将所述数据字段作为所述任务的执行结果。
4.根据权利要求2所述的方法,其特征在于,还包括:根据所述执行日志监控所述任务的执行状态,并当所述执行日志出现异常时进行异常处理以及向所述任务发起者发送预警消息。
5.根据权利要求1所述的方法,其特征在于,
所述任务发起者通过轮询的方式获取所述任务的执行结果。
6.根据权利要求1所述的方法,其特征在于,
所述任务发起者根据所述任务处理者发来的所述任务执行完成的通知,从所述保存的执行结果中获取所述任务的执行结果。
7.根据权利要求1所述的方法,其特征在于,
所述任务发起者通过接收所述任务处理者发来的执行结果的方式获取所述任务的执行结果。
8.一种分布式系统任务执行的装置,其特征在于,包括:
任务创建模块,用于任务发起者创建任务并将所述任务发送给任务调度者;
任务分发模块,用于所述任务调度者接收所述任务并将所述任务分发给任务处理者;
任务处理模块,用于所述任务处理者接收并执行所述任务,并保存所述任务的执行结果;
结果获取模块,用于所述任务发起者从保存的所述执行结果中获取所述任务的执行结果。
9.根据权利要求8所述的装置,其特征在于,所述任务处理模块还用于:
根据预定的结果处理规则对所述任务的执行日志进行处理,以得到所述任务的执行结果。
10.根据权利要求9所述的装置,其特征在于,所述结果处理规则包括:从所述执行日志中抽取所述任务对应的数据字段,并将所述数据字段作为所述任务的执行结果。
11.根据权利要求9所述的装置,其特征在于,还包括监控预警模块,用于:
根据所述执行日志监控所述任务的执行状态,并当所述执行日志出现异常时进行异常处理以及向所述任务发起者发送预警消息。
12.根据权利要求8所述的装置,其特征在于,
所述任务发起者通过轮询的方式获取所述任务的执行结果。
13.根据权利要求8所述的装置,其特征在于,
所述任务发起者根据所述任务处理者发来的所述任务执行完成的通知,从所述保存的执行结果中获取所述任务的执行结果。
14.根据权利要求8所述的装置,其特征在于,
所述任务发起者通过接收所述任务处理者发来的执行结果的方式获取所述任务的执行结果。
15.一种分布式系统任务执行的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
16.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710270128.3A CN108733469B (zh) | 2017-04-24 | 2017-04-24 | 一种分布式系统任务执行的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710270128.3A CN108733469B (zh) | 2017-04-24 | 2017-04-24 | 一种分布式系统任务执行的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108733469A true CN108733469A (zh) | 2018-11-02 |
CN108733469B CN108733469B (zh) | 2021-09-03 |
Family
ID=63934311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710270128.3A Active CN108733469B (zh) | 2017-04-24 | 2017-04-24 | 一种分布式系统任务执行的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108733469B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040093351A1 (en) * | 2002-11-08 | 2004-05-13 | Chung-I Lee | System and method for controlling task assignment and work schedules |
CN201298233Y (zh) * | 2008-10-22 | 2009-08-26 | 西北电网有限公司 | 一种电力系统电磁暂态过程的分布式仿真装置 |
CN103200350A (zh) * | 2013-03-29 | 2013-07-10 | 北京中科大洋科技发展股份有限公司 | 一种非线性云编辑方法 |
US20130283097A1 (en) * | 2012-04-23 | 2013-10-24 | Yahoo! Inc. | Dynamic network task distribution |
CN103577256A (zh) * | 2013-11-21 | 2014-02-12 | 五八同城信息技术有限公司 | 分布式定时任务调度系统 |
CN104184823A (zh) * | 2014-09-05 | 2014-12-03 | 北京京东尚科信息技术有限公司 | 一种自动化任务调度的方法和系统 |
CN104253850A (zh) * | 2014-01-07 | 2014-12-31 | 深圳市华傲数据技术有限公司 | 一种任务分布式调度方法和系统 |
CN104268007A (zh) * | 2014-01-07 | 2015-01-07 | 深圳市华傲数据技术有限公司 | 一种事件请求分布式调度方法和系统 |
CN105787243A (zh) * | 2014-12-24 | 2016-07-20 | 北京奇虎科技有限公司 | 针对业务对象的数据处理方法和系统、及电子设备 |
CN105893225A (zh) * | 2015-08-25 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 一种错误自动处理方法及装置 |
CN106127048A (zh) * | 2016-06-28 | 2016-11-16 | 合肥酷睿网络科技有限公司 | 一种基于bho技术动态检测系统 |
CN106168909A (zh) * | 2016-06-30 | 2016-11-30 | 北京奇虎科技有限公司 | 一种日志的处理方法和装置 |
US20170011312A1 (en) * | 2015-07-07 | 2017-01-12 | Tyco Fire & Security Gmbh | Predicting Work Orders For Scheduling Service Tasks On Intrusion And Fire Monitoring |
CN106372778A (zh) * | 2016-08-23 | 2017-02-01 | 江苏亿科达科技发展有限公司 | 基于动态规则引擎的车辆调度系统及方法 |
-
2017
- 2017-04-24 CN CN201710270128.3A patent/CN108733469B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040093351A1 (en) * | 2002-11-08 | 2004-05-13 | Chung-I Lee | System and method for controlling task assignment and work schedules |
CN201298233Y (zh) * | 2008-10-22 | 2009-08-26 | 西北电网有限公司 | 一种电力系统电磁暂态过程的分布式仿真装置 |
US20130283097A1 (en) * | 2012-04-23 | 2013-10-24 | Yahoo! Inc. | Dynamic network task distribution |
CN103200350A (zh) * | 2013-03-29 | 2013-07-10 | 北京中科大洋科技发展股份有限公司 | 一种非线性云编辑方法 |
CN103577256A (zh) * | 2013-11-21 | 2014-02-12 | 五八同城信息技术有限公司 | 分布式定时任务调度系统 |
CN104253850A (zh) * | 2014-01-07 | 2014-12-31 | 深圳市华傲数据技术有限公司 | 一种任务分布式调度方法和系统 |
CN104268007A (zh) * | 2014-01-07 | 2015-01-07 | 深圳市华傲数据技术有限公司 | 一种事件请求分布式调度方法和系统 |
CN104184823A (zh) * | 2014-09-05 | 2014-12-03 | 北京京东尚科信息技术有限公司 | 一种自动化任务调度的方法和系统 |
CN105787243A (zh) * | 2014-12-24 | 2016-07-20 | 北京奇虎科技有限公司 | 针对业务对象的数据处理方法和系统、及电子设备 |
US20170011312A1 (en) * | 2015-07-07 | 2017-01-12 | Tyco Fire & Security Gmbh | Predicting Work Orders For Scheduling Service Tasks On Intrusion And Fire Monitoring |
CN105893225A (zh) * | 2015-08-25 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 一种错误自动处理方法及装置 |
CN106127048A (zh) * | 2016-06-28 | 2016-11-16 | 合肥酷睿网络科技有限公司 | 一种基于bho技术动态检测系统 |
CN106168909A (zh) * | 2016-06-30 | 2016-11-30 | 北京奇虎科技有限公司 | 一种日志的处理方法和装置 |
CN106372778A (zh) * | 2016-08-23 | 2017-02-01 | 江苏亿科达科技发展有限公司 | 基于动态规则引擎的车辆调度系统及方法 |
Non-Patent Citations (2)
Title |
---|
XIANG GAO ET AL.: "《A Dispatching-Rule-Based Task Scheduling Policy for MapReduce with Multi-type Jobs in Heterogeneous Environments》", <2012 SEVENTH CHINAGRID ANNUAL CONFERENCE> * |
李华 等: "《 面向企业应用的RFID集成中间件框架》", 《面向企业营业的RFID集成中间件框架》 * |
Also Published As
Publication number | Publication date |
---|---|
CN108733469B (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112882813B (zh) | 任务调度方法、装置、系统及电子设备 | |
EP3684033A1 (en) | Systems and methods for collecting, monitoring, and analyzing vehicle data from a plurality of vehicles using edge computing | |
CN101652750B (zh) | 数据处理装置、分散处理系统、数据处理方法 | |
US9201715B2 (en) | Event overflow handling by coalescing and updating previously-queued event notification | |
US20240205266A1 (en) | Epistemic uncertainty reduction using simulations, models and data exchange | |
CN109829765A (zh) | 基于Flink和Kafka实时监控销售数据的方法、系统及装置 | |
CN110611707B (zh) | 一种任务调度的方法及装置 | |
CN108733462A (zh) | 延迟任务的方法和装置 | |
CN110688828A (zh) | 文件处理方法及装置、文件处理系统、计算机设备 | |
CN113051019A (zh) | 流程任务执行管控方法、装置以及设备 | |
CN108768837A (zh) | 消息处理方法及相关装置 | |
CN108563455A (zh) | 一种k-ux操作系统上中间件部署方法、系统及设备 | |
CN102904961A (zh) | 一种云计算资源调度方法及系统 | |
CN113703997A (zh) | 集成多种消息代理的双向异步通信中间件系统及实现方法 | |
CN110019214A (zh) | 对数据拆分结果进行校验的方法和装置 | |
CN109840725A (zh) | 货物拣选方法、装置、电子装置及计算机可读存储介质 | |
CN111324460B (zh) | 一种基于云计算平台的电力监测控制系统及方法 | |
CN111526049A (zh) | 运维系统、运维方法、电子设备和存储介质 | |
CN109684172A (zh) | 基于访问频率的日志推送方法、系统、设备及存储介质 | |
CN109379245A (zh) | 一种wifi报表生成方法及系统 | |
CN110796341A (zh) | 一种催收案件分布式批处理方法、装置和电子设备 | |
CN108628677A (zh) | 分布式任务处理系统、方法和装置 | |
CN109800090A (zh) | 一种数据集成系统及方法 | |
CN112306722B (zh) | 识别故障的方法、装置、设备和计算机可读介质 | |
CN109783201A (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 |