CN113467908A - 任务执行方法、装置、计算机可读存储介质及终端设备 - Google Patents

任务执行方法、装置、计算机可读存储介质及终端设备 Download PDF

Info

Publication number
CN113467908A
CN113467908A CN202110700114.7A CN202110700114A CN113467908A CN 113467908 A CN113467908 A CN 113467908A CN 202110700114 A CN202110700114 A CN 202110700114A CN 113467908 A CN113467908 A CN 113467908A
Authority
CN
China
Prior art keywords
task
subtask
executor
execution
subtasks
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
Application number
CN202110700114.7A
Other languages
English (en)
Other versions
CN113467908B (zh
Inventor
黄辉杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Mushroom Wealth Technology Co ltd
Original Assignee
Shenzhen Mushroom Wealth Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Mushroom Wealth Technology Co ltd filed Critical Shenzhen Mushroom Wealth Technology Co ltd
Priority to CN202110700114.7A priority Critical patent/CN113467908B/zh
Publication of CN113467908A publication Critical patent/CN113467908A/zh
Application granted granted Critical
Publication of CN113467908B publication Critical patent/CN113467908B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种任务执行方法、装置、计算机可读存储介质及终端设备,所述方法包括获取待执行任务;对所述待执行任务进行分解,生成多个子任务以及所述子任务对应的责任链任务;根据预设的任务执行器清单,确定各个所述子任务对应的任务执行器;根据所述责任链任务中各个所述子任务之间的顺序,控制所述任务执行器执行所述子任务,得到所述责任链任务对应的执行结果。本发明能够实现任务有序地执行且结果能够进行汇总处理。

Description

任务执行方法、装置、计算机可读存储介质及终端设备
技术领域
本发明涉及信息处理技术领域,特别涉及一种任务执行方法、装置、计算机可读存储介质及终端设备。
背景技术
当服务器需要处理一个较为复杂且资源占用较大的任务时,该任务可分为若干个子任务分别执行。然而很多时候子任务与子任务之间是存在关联关系,例如依赖关系,子任务A的执行必须依赖子任务B的完成结果。而此时为了让这种每一个子任务的结果能够汇总生成该复杂任务对应的任务结果时,常常采用一个服务器执行一连串的子任务实现。这种情况下会占用较大的服务器资源,而且这种方式一旦开始无法中途停止,执行期间出错,极有可能对服务器中存储的其他数据造成影响。
虽然目前有也有多种可进行复杂任务的运行框架,例如Spring Batch、Quartz以及Control-M。但Spring Batch单纯提供了一套批作业的开发框架,并没有考虑到部署架构,以及运维成本,Quartz单纯提供了一套定时调度的开发框架,而Control-M集中式部署,扩展性不强。因此当前的定时任务执行框架无法有效地处理复杂且资源占据较大的任务。
此外,上述的三种方式的扩展性很差,也无法查看任务的执行状态、执行效率,因此无法形成有效的监控。
发明内容
本发明要解决的技术问题在于处理复杂且资源占用大的任务时由于一个服务器处理,占用资源较大,针对现有技术的不足,提供一种任务执行方法。
为了解决上述技术问题,本发明所采用的技术方案如下:
一种任务执行方法,所述方法包括:
获取待执行任务;
对所述待执行任务进行分解,生成多个子任务以及所述子任务对应的责任链任务;
根据预设的任务执行器清单,确定各个所述子任务对应的任务执行器;
根据所述责任链任务中各个所述子任务之间的顺序,控制所述任务执行器执行所述子任务,得到所述责任链任务对应的执行结果。
所述任务执行方法,其中,所述任务执行清单包括各个所述任务执行器对应的执行器地址;
所述根据所述任务执行器清单,确定各个所述子任务对应的任务执行器并将责任链任务发送至对应的任务执行器,具体包括:
根据所述执行器地址,获取各个所述任务执行器对应的工作状态以及历史信息;
根据所述工作状态以及所述历史信息,确定各个所述子任务对应的任务执行器并将所述责任链任务发送至该子任务对应的任务执行器。
所述任务执行方法,其中,所述执行结果包括各个所述子任务对应的子结果;所述根据所述责任链任务中各个所述子任务之间的顺序,控制所述任务执行器执行所述子任务,得到所述责任链任务对应的执行结果,具体包括:
针对每一个所述子任务,当该子任务所述责任链任务中的第一个子任务时,控制该子任务对应的任务执行器执行该子任务,得到该子任务对应的第一子结果;以及,
当该子任务为所述责任链任务中的第N个子任务且检测到第(N-1)子结果时,控制第N子任务对应的任务执行器根据所述第(N-1)子结果执行所述第N子任务,得到第N子结果,其中,所述N为大于或等于2且小于或等于所述子任务总数的自然数。
所述任务执行方法,其中,所述根据所述责任链任务中各个所述子任务之间的顺序,控制所述任务执行器执行所述子任务,得到所述责任链任务对应的执行结果之后,还包括:
当检测到所述第一子结果或/和所述第N子结果时,将所述第一子结果或/和所述第N子结果发送至预先连接的监控中心,以供所述监控中心显示所述第一子结果或/和所述第N子结果对应的执行情况信息。
所述任务执行方法,其中,所述方法还包括:
针对每一个所述子任务,当该子任务对应的任务执行器执行该子任务出现异常时,控制该任务执行器重新执行该子任务;
若该任务执行器仍无法正常执行该子任务,则根据所述任务执行器清单,确定该子任务对应的重试执行器,并控制所述重试执行器执行该子任务;
若所述重试执行器无法正常执行该子任务,则终止所述子任务的执行,并将预设的异常执行信息发送至预先连接的监控中心。
所述任务执行方法,其中,所述若所述重试执行器无法正常执行该子任务,则终止所述子任务的执行,并将预设的异常执行信息发送至所述监控中心之后还包括:
根据所述责任链任务对应的开始时刻,控制所述责任链任务对应的任务执行器以及数据库回滚至所述开始时刻对应的状态。
所述任务执行方法,其中,所述方法还包括:
当检测到执行调整指令时,执行与所述执行调整指令对应的操作,其中,所述执行调整指令包括开始任务、暂停任务、恢复任务以及终止任务。
一种任务执行装置,其中,具体包括:
获取模块,用于获取待执行任务;
分解模块,用于对所述待执行任务进行分解,生成多个子任务以及所述子任务对应的责任链任务;
确定模块,用于根据预设的任务执行器清单,确定各个所述子任务对应的任务执行器;
执行模块,用于根据所述责任链任务中各个所述子任务之间的顺序,控制所述任务执行器执行所述子任务,得到所述责任链任务对应的执行结果。
一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的任务执行方法中的步骤。
一种终端设备,其包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如上任一所述的任务执行方法中的步骤。
有益效果:与现有技术相比,本发明提供了一种任务执行方法、装置、计算机可读存储介质及终端设备,所述方法将待执行任务拆分为多个子任务并生成责任链任务。然后再根据预设的任务执行器清单,确定执行每一个子任务的任务执行器。在执行任务时,控制每一个任务执行器执行其对应的子任务,一方面可以实现将任务拆分,提高处理的效率,减少单个任务执行器的负荷,另一方面当某一个任务执行器出现故障无法正常执行时,可将该任务执行器对应的子任务交给其他的任务执行器处理,提高了任务执行的顺利执行的概率。
此外,为了避免某一个任务执行器无法正常执行任务导致的其他数据受到影响,在执行该责任链任务的子任务时,记录开始时刻作为开始时刻,一旦出现无法继续执行的情况下,将执行该责任链任务的任务执行器进行回滚至开始时刻的状态,保证了某一项任务的执行故障不会影响到其他数据。同时,本发明还将每一个子任务对应的子结果发送至监控中心,实现任务执行情况的可视化。
附图说明
图1为本发明提供的任务执行方法的应用场景示意图。
图2为本发明提供的任务执行方法的流程图。
图3为本发明提供的任务执行方法中掩码图像的一个实施例的示意图。
图4为本发明提供的终端设备的结构原理图。
其中,图2中100:责任链任务调度中心;200:注册中心;300:责任链任务元数据中心;400:任务执行器;500:责任链任务执行插件;600:责任链任务;700:数据库;800:责任链任务控制中心;900:责任链任务监控中心。
具体实施方式
本发明提供一种任务执行方法、装置、计算机可读存储介质及终端设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
发明人经过研究发现,当服务器需要处理一个较为复杂且资源占用较大的任务时,该任务可分为若干个子任务。然而很多时候子任务与子任务之间是存在关联关系,例如依赖关系,子任务A的执行必须依赖子任务B的完成结果。而此时为了让这种每一个子任务的结果能够汇总生成该复杂任务对应的任务结果时,常常采用一个服务器执行一连串的子任务实现。这种情况下会占用较大的服务器资源,而且这种方式一旦开始无法中途停止,执行期间出错,极有可能对服务器中存储的其他数据造成影响。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
如图1所示,本实施提供了一种任务执行方法,在本实施例中,任务执行方法的执行主体为责任链任务管控中心,其作用为对责任链任务的执行等相关事务进行管控、协调以及控制,责任链任务管控中心可包括责任链任务管理中心以及责任链任务控制中心。所述方法可以包括以下步骤:
S10、获取待执行任务。
具体地,责任链任务管理中心先获取待执行任务,该待执行任务可以是通过通信连接的客户服务器发送的处理数据的请求、用户注册请求等;还可以通过该责任链任务管理中心所安装的终端直接输入得到的待执行任务。
S20、对所述待执行任务进行分解,生成多个子任务以及所述子任务对应的责任链任务。
具体地,然后对待执行任务进行任务分解。当待执行任务为简单任务时,即一个任务执行器就可执行完成的任务,则分解后的子任务的数量为一。这种情形下,可以将这个子任务直接作为责任链任务。
当待执行任务为复杂任务时,对该待执行任务进行分解后可得到若干个子任务。其中,分解方式包括根据待执行任务中所需要的输入值与输出值之间的依赖关系,例如该任务的执行过程中需要输入值依次为A、B和C,A是数据服务器中固有的,而B和C是任务执行过程中生成的,因此可将任务分为四个子任务,第一个根据A生成B,第二个以及第三个用户生成B以及C,最后一个根据C生成该任务最终的结果。或者分解方式是根据预先连接的任务执行器的性能进行不同粒度的划分。任务执行器的处理效率越高,越稳定,则每一个任务执行器对应的子任务的粒度越粗。值得注意的是,本实施例可采用的分解方式包括且不限于上述的方式,可根据待执行任务的需求等因素进行调整。通过将待执行任务分解为多个子任务,生成该待执行任务对应的责任链任务。值得注意的是,责任链任务与传统的一个任务拆分为多个子任务,每一个子任务都发送至一个服务器进行执行的方式不同,责任链任务本质上仍然是一个任务,其具有不可拆分性,前文的分解只是将其分为可以分步进行的模块,彼此之间仍然是连接在一起的。
S30、根据预设的任务执行器清单,确定各个所述子任务对应的任务执行器。
具体地,任务执行器本质上是用于执行任务的功能模块,预先将每一个任务执行器的地址与所提供的服务列为一个清单,即任务执行器清单。任务执行器清单可直接保存于责任链任务管理中心。
如图2所示,本实施例为了将每一个模块的功能界限清晰,提高处理效率,采用注册中心作为生成以及保存任务执行器清单的模块,以实现分布式微服务的服务注册与服务发现。当某一个任务执行器上线并可提供服务时,该任务执行器与注册中心进行连接,并将自身所能够提供的服务、以及执行器地址等相关信息发送至注册中心,注册中心将这些信息新增至任务执行器清单上。在此期间,注册中心与该任务执行器保持心跳连接,当该任务执行器下线或无法提供服务,注册中心及时将该任务执行器对应的信息在任务执行清单中删除。此外,本实施例为了实现功能的最优化以及任务执行器的处理效率,任务执行器分布于多个不同的服务器上,至少为两个服务器,最优为每一个任务执行器与服务器一一对应,即一个服务器上仅设有一个任务执行器。
当得到责任链任务之后,责任链任务调度中心从注册中心获取任务执行器清单,然后根据任务执行器清单上每一个任务执行器所提供的服务类型,确定责任链任务上每一个子任务对应的任务执行器。若某一个子任务仅有一个任务执行器可提供相应的服务,则该任务执行器作为该子任务对应的任务执行器。若存在一个子任务对应多个任务执行器时,则如何选择最为合适的任务执行器为关键点。
在本实施例中,针对每一个子任务,先根据每一个执行器地址,获取与该子任务对应的任务执行器的工作状态以及历史信息。工作状态包括运行速率、CPU负荷、GPU负荷、空闲内存大小等,历史信息为该任务执行器历史执行子任务的成功率、处理速率、稳定性等。其中,稳定性可根据该任务执行器不重试就可执行完子任务作为评价标准。在得到工作状态和历史信息后,责任链任务调度中心根据这两个信息,选择能够提供最优服务的任务执行器为该子任务对应的任务执行器,并将责任链任务发送至对应的任务执行器,以供后续控制任务执行器执行责任链任务中该子任务。
S40、根据所述责任链任务中各个所述子任务之间的顺序,控制所述任务执行器执行所述子任务,得到所述责任链任务对应的执行结果。
具体地,责任链任务中各个子任务之间存在着执行顺序,因此根据责任链任务中各个子任务之间的顺序,责任链任务控制中心控制任务执行器执行其对应的子任务,执行最后一个子任务后,即得到该责任链任务中每一个子任务对应的子结果,将每一个子任务的子结果作为责任链任务对应的执行结果。其具体的过程包括:
针对每一个所述子任务,当该子任务为责任链任务中的第一个子任务时,控制该子任务对应的任务执行器执行该子任务,该子任务对应的第一子结果;以及,当该子任务为所述责任链任务中的第N个子任务且检测到第(N-1)子结果时,控制第N子任务对应的任务执行器根据所述第(N-1)子结果执行所述第N子任务,得到第N子结果,其中,所述N为大于或等于2且小于所述子任务总数的自然数。
具体地,针对每一个子任务,当责任链任务调度中心将责任链任务发送至该子任务对应的任务执行器时,该任务执行器将该子任务列入其对应的任务列队,该任务执行器依照任务队列依次执行任务,直到执行该子任务。
当该子任务为责任链任务中的第一个子任务,且任务执行器执行到到该子任务时,责任链任务管控中心直接控制任务执行器执行该子任务,得到该子任务对应的第一子结果。在执行子任务过程中,任务执行器所需要的数据资源可从存储有大量数据的数据库中获取。
当该子任务为责任链任务中非第一个子任务,即为第N个子任务(N为大于或等于2且小于或等于所述子任务总数的自然数),则责任链任务控制中心控制该任务执行器先暂停处理该子任务,直至其责任链任务控制中心检测到第(N-1)子结果。以N=2为例,责任链任务中的第二个子任务需要执行时,责任链任务控制中心先判断是否检测到第一子结果。若检测到,则控制第二个子任务对应的任务执行器执行第二个子任务;若未检测到,则控制第二个子任务对应的任务执行器先行执行其任务队列中后续的任务,或者控制该任务执行器暂停处理,直至检测到第一子结果。此外,若第二个子任务对应的任务执行器先行处理任务队列中的紧接着的候选任务,则任务执行器在执行候选任务的同时,将第二个子任务调整至任务队列中的第一个任务,当候选任务执行完毕后,再执行第二个子任务,得到第二子结果。
为了将子结果与其他常规数据进行区分,更好地进行数据调度,本实施例中,在检测到任务执行器执行后得到的子结果时,将子结果存储于责任链任务元数据中心,后续责任链任务管控中心需要对子结果进行处理,无论是发送至下一个子任务对应的任务执行器还是发送到监控中心,都对责任链任务元数据中心进行操作,简化了操作的复杂性,使得责任链任务管控中心的工作更单元化。
责任链任务管控中心还与监控中心通讯连接,监控中心用于提供用户查看每一个任务的执行情况以及执行性能。责任链任务管控中心在检测到第一子结果或/和所述第N子结果时,将所述第一子结果或/和所述第N子结果发送至监控中心,监控中心得到第一子结果或/和第N子结果时,对这些子结果进行图示化、文字化等处理,并进行展示,以供用户实时观看执行情况信息。在本实施例的第一种展示方式中,责任链任务管控中心每检测到一项子结果,都发送至监控中心,监控中心可选择根据之结果的成功与否显示执行情况信息,或者对子结果进行分析,对子结果所对应的结果内容也作为执行情况信息进行展示。
在责任链任务中的每一个子任务执行过程中,会存在某一个任务执行器执行子任务失败或出错等情形。针对此问题,本实施例中,针对待执行的子任务会进行任务包装,在每一个子任务的执行前、执行后都会调用具有一定功能的责任链任务执行插件,对子任务的执行进行更细微的监督以及调控。本实施例采用的责任链任务执行插件包括监控插件、日志插件、任务暂停插件、失败重试插件、失败回滚插件。
其中,监控插件用于记录执行该子任务的任务执行器的执行性能,用于后续生成该任务执行器对应的历史信息。
日志插件用于对子任务的执行时间节点进行记录,例如任务执行器执行子任务的开始时刻、结束时刻,若出现暂停、重试等情形,也可将这些情形发生的时间节点进行记录。
任务暂停插件用于当接收到暂停任务的指令时,责任链任务管控中心基于任务暂停插件执行任务暂停操作。
失败重试插件用于当任务执行器执行子任务失败时,责任链任务管控中心基于失败重试插件进行重试操作。重试的具体过程为:
针对每一个所述子任务,当该子任务对应的任务执行器执行该子任务出现异常时,控制该任务执行器重新执行该子任务。若该任务执行器仍无法正常执行该子任务,则责任链任务管理中心根据所述任务执行器清单,重新寻找能够执行该子任务的任务执行器,并将重新寻找的任务执行器作为该子任务对应的重试执行器。然后控制所述重试执行器执行该子任务。若重试执行器也无法正常执行该子任务,则终止该子任务的执行,并将预先设置的异常执行信息发送至监控中心,以便于监控中心发出执行异常提示。执行异常提示可包括出现异常的子任务以及其对应的待执行任务,还可列上可能出现的该异常的原因。
失败回滚插件用于进行数据库以及任务执行器的回滚,当执行责任链任务中的某一个子任务失败时,由于该子任务之前的处理会对数据库存储的数据以及任务执行器本身进行一定的影响,因此,在确定责任链任务执行失败后,根据日志插件中记录的开始时刻,责任链任务管控中心基于失败回滚插件将数据库以及任务执行器回滚至开始时刻对应的状态,以避免由于失败的任务执行影响到后续任务的执行。
值得注意的是,在不同的业务需求环境下,责任链任务执行插件的功能以及数量可进行自由调整。例如除了任务暂停插件还可以包括任务开始插件、定时开始插件、恢复任务插件、终止任务插件等,用户可通过终端向责任链任务管控中心发送调整指令,当检测到调整指令时,责任链任务管控中心执行调整指令对应的操作,例如开始任务、暂停任务、恢复任务、终止任务等。
如图3所示,基于上述任务执行方法,本实施例提供了一种任务执行装置,其中,所述任务执行装置包括:
获取模块,用于获取待执行任务;
分解模块,用于对所述待执行任务进行分解,生成多个子任务以及所述子任务对应的责任链任务;
确定模块,用于根据预设的任务执行器清单,确定各个所述子任务对应的任务执行器;
执行模块,用于根据所述责任链任务中各个所述子任务之间的顺序,控制所述任务执行器执行所述子任务,得到所述责任链任务对应的执行结果。
其中,所述任务执行清单包括各个所述任务执行器对应的执行器地址;所述确定模块具体用于:
根据所述执行器地址,获取各个所述任务执行器对应的工作状态以及历史信息;
根据所述工作状态以及所述历史信息,确定各个所述子任务对应的任务执行器并将所述责任链任务发送至该子任务对应的任务执行器。
其中,所述执行结果包括各个所述子任务对应的子结果;所述执行模块包括:
初始执行单元,用于针对每一个所述子任务,当该子任务所述责任链任务中的第一个子任务时,控制该子任务对应的任务执行器执行该子任务,得到该子任务对应的第一子结果;以及,
中间执行单元,用于当该子任务为所述责任链任务中的第N个子任务且检测到第(N-1)子结果时,控制第N子任务对应的任务执行器根据所述第(N-1)子结果执行所述第N子任务,得到第N子结果,其中,所述N为大于或等于2且小于或等于所述子任务总数的自然数。
其中,所述执行模块还包括显示单元,所述显示单元具体用于:
当检测到所述第一子结果或/和所述第N子结果时,将所述第一子结果或/和所述第N子结果发送至预先连接的监控中心,以供所述监控中心显示所述第一子结果或/和所述第N子结果对应的执行情况信息。
其中,所述任务执行装置还包括重试模块,所述重试模块具体用于:
针对每一个所述子任务,当该子任务对应的任务执行器执行该子任务出现异常时,控制该任务执行器重新执行该子任务;
若该任务执行器仍无法正常执行该子任务,则根据所述任务执行器清单,确定该子任务对应的重试执行器,并控制所述重试执行器执行该子任务;
若所述重试执行器无法正常执行该子任务,则终止所述子任务的执行,并将预设的异常执行信息发送至预先连接的监控中心。
其中,所述任务执行装置还包括恢复模块,所述恢复模块具体用于:
根据所述责任链任务对应的开始时刻,控制所述责任链任务对应的任务执行器以及数据库回滚至所述开始时刻对应的状态。
其中,所述任务执行装置还包括操作模块,所述操作模块具体用于:
当检测到执行调整指令时,执行与所述执行调整指令对应的操作,其中,所述执行调整指令包括开始任务、暂停任务、恢复任务以及终止任务。
基于上述任务执行方法,本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例所述的任务执行方法中的步骤。
基于上述任务执行方法,本发明还提供了一种终端设备,如图4所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取计算机可读存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态计算机可读存储介质。
此外,上述计算机可读存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种任务执行方法,其特征在于,所述方法包括:
获取待执行任务;
对所述待执行任务进行分解,生成多个子任务以及所述子任务对应的责任链任务;
根据预设的任务执行器清单,确定各个所述子任务对应的任务执行器;
根据所述责任链任务中各个所述子任务之间的顺序,控制所述任务执行器执行所述子任务,得到所述责任链任务对应的执行结果。
2.根据权利要求1所述任务执行方法,其特征在于,所述任务执行清单包括各个所述任务执行器对应的执行器地址;所述根据所述任务执行器清单,确定各个所述子任务对应的任务执行器并将责任链任务发送至对应的任务执行器,具体包括:
根据所述执行器地址,获取各个所述任务执行器对应的工作状态以及历史信息;
根据所述工作状态以及所述历史信息,确定各个所述子任务对应的任务执行器并将所述责任链任务发送至该子任务对应的任务执行器。
3.根据权利要求1所述任务执行方法,其特征在于,所述执行结果包括各个所述子任务对应的子结果;所述根据所述责任链任务中各个所述子任务之间的顺序,控制所述任务执行器执行所述子任务,得到所述责任链任务对应的执行结果,具体包括:
针对每一个所述子任务,当该子任务所述责任链任务中的第一个子任务时,控制该子任务对应的任务执行器执行该子任务,得到该子任务对应的第一子结果;以及,
当该子任务为所述责任链任务中的第N个子任务且检测到第(N-1)子结果时,控制第N子任务对应的任务执行器根据所述第(N-1)子结果执行所述第N子任务,得到第N子结果,其中,所述N为大于或等于2且小于或等于所述子任务总数的自然数。
4.根据权利要求3所述任务执行方法,其特征在于,所述根据所述责任链任务中各个所述子任务之间的顺序,控制所述任务执行器执行所述子任务,得到所述责任链任务对应的执行结果之后,还包括:
当检测到所述第一子结果或/和所述第N子结果时,将所述第一子结果或/和所述第N子结果发送至预先连接的监控中心,以供所述监控中心显示所述第一子结果或/和所述第N子结果对应的执行情况信息。
5.根据权利要求1所述任务执行方法,其特征在于,所述方法还包括:
针对每一个所述子任务,当该子任务对应的任务执行器执行该子任务出现异常时,控制该任务执行器重新执行该子任务;
若该任务执行器仍无法正常执行该子任务,则根据所述任务执行器清单,确定该子任务对应的重试执行器,并控制所述重试执行器执行该子任务;
若所述重试执行器无法正常执行该子任务,则终止所述子任务的执行,并将预设的异常执行信息发送至预先连接的监控中心。
6.根据权利要求5所述任务执行方法,其特征在于,所述若所述重试执行器无法正常执行该子任务,则终止所述子任务的执行,并将预设的异常执行信息发送至所述监控中心之后还包括:
根据所述责任链任务对应的开始时刻,控制所述责任链任务对应的任务执行器以及数据库回滚至所述开始时刻对应的状态。
7.根据权利要求1~6任一所述任务执行方法,其特征在于,所述方法还包括:
当检测到执行调整指令时,执行与所述执行调整指令对应的操作,其中,所述执行调整指令包括开始任务、暂停任务、恢复任务以及终止任务。
8.一种任务执行装置,其特征在于,所述任务执行装置具体包括:
获取模块,用于获取待执行任务;
分解模块,用于对所述待执行任务进行分解,生成多个子任务以及所述子任务对应的责任链任务;
确定模块,用于根据预设的任务执行器清单,确定各个所述子任务对应的任务执行器;
执行模块,用于根据所述责任链任务中各个所述子任务之间的顺序,控制所述任务执行器执行所述子任务,得到所述责任链任务对应的执行结果。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1~7任意一项所述的任务执行方法中的步骤。
10.一种终端设备,其特征在于,包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如权利要求1~7任意一项所述的任务执行方法中的步骤。
CN202110700114.7A 2021-06-23 2021-06-23 任务执行方法、装置、计算机可读存储介质及终端设备 Active CN113467908B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110700114.7A CN113467908B (zh) 2021-06-23 2021-06-23 任务执行方法、装置、计算机可读存储介质及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110700114.7A CN113467908B (zh) 2021-06-23 2021-06-23 任务执行方法、装置、计算机可读存储介质及终端设备

Publications (2)

Publication Number Publication Date
CN113467908A true CN113467908A (zh) 2021-10-01
CN113467908B CN113467908B (zh) 2024-02-20

Family

ID=77872536

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110700114.7A Active CN113467908B (zh) 2021-06-23 2021-06-23 任务执行方法、装置、计算机可读存储介质及终端设备

Country Status (1)

Country Link
CN (1) CN113467908B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114244918A (zh) * 2021-12-08 2022-03-25 中信银行股份有限公司 基于责任链的数据处理方法、装置、设备及可读存储介质
CN114385341A (zh) * 2022-03-24 2022-04-22 国能大渡河流域水电开发有限公司 一种分布式任务调度方法及调度平台

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070239798A1 (en) * 2005-10-14 2007-10-11 Oracle International Corporation Long-lived data transactions
US20070283352A1 (en) * 2005-10-14 2007-12-06 Degenhardt Jon R Sub-task mechanism for development of task-based user interfaces
CN106250254A (zh) * 2016-07-21 2016-12-21 腾讯科技(深圳)有限公司 一种任务处理方法及系统
US20170286208A1 (en) * 2016-03-31 2017-10-05 Change Healthcare Llc Methods and apparatuses for improving failure recovery in a distributed system
CN108920261A (zh) * 2018-05-23 2018-11-30 中国航天系统科学与工程研究院 一种适于大规模并行数据处理任务的两级自适应调度方法
CN109301936A (zh) * 2018-10-11 2019-02-01 云南电网有限责任公司红河供电局 一种基于容器调度架构的智能变电站运维信息监视系统
US10310896B1 (en) * 2018-03-15 2019-06-04 Sas Institute Inc. Techniques for job flow processing
CN110096342A (zh) * 2019-05-08 2019-08-06 深圳乐信软件技术有限公司 任务处理方法、装置、服务器和存储介质
CN110399241A (zh) * 2019-07-10 2019-11-01 金蝶软件(中国)有限公司 任务异常处理方法、装置、计算机设备和可读存储介质
CN110532077A (zh) * 2019-08-22 2019-12-03 腾讯科技(深圳)有限公司 任务处理方法、装置及存储介质
CN110807657A (zh) * 2019-10-25 2020-02-18 网银在线(北京)科技有限公司 订单处理方法、装置、设备及计算机可读存储介质
CN112181612A (zh) * 2020-08-31 2021-01-05 深圳市优必选科技股份有限公司 任务处理方法、装置、电子设备及计算机可读存储介质
CN112559156A (zh) * 2020-12-23 2021-03-26 百果园技术(新加坡)有限公司 一种多依赖任务分组管理方法、装置、设备及存储介质
CN112765031A (zh) * 2021-01-25 2021-05-07 北京航空航天大学 一种群智化漏洞挖掘任务的分解方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070239798A1 (en) * 2005-10-14 2007-10-11 Oracle International Corporation Long-lived data transactions
US20070283352A1 (en) * 2005-10-14 2007-12-06 Degenhardt Jon R Sub-task mechanism for development of task-based user interfaces
US20170286208A1 (en) * 2016-03-31 2017-10-05 Change Healthcare Llc Methods and apparatuses for improving failure recovery in a distributed system
CN106250254A (zh) * 2016-07-21 2016-12-21 腾讯科技(深圳)有限公司 一种任务处理方法及系统
US10310896B1 (en) * 2018-03-15 2019-06-04 Sas Institute Inc. Techniques for job flow processing
CN108920261A (zh) * 2018-05-23 2018-11-30 中国航天系统科学与工程研究院 一种适于大规模并行数据处理任务的两级自适应调度方法
CN109301936A (zh) * 2018-10-11 2019-02-01 云南电网有限责任公司红河供电局 一种基于容器调度架构的智能变电站运维信息监视系统
CN110096342A (zh) * 2019-05-08 2019-08-06 深圳乐信软件技术有限公司 任务处理方法、装置、服务器和存储介质
CN110399241A (zh) * 2019-07-10 2019-11-01 金蝶软件(中国)有限公司 任务异常处理方法、装置、计算机设备和可读存储介质
CN110532077A (zh) * 2019-08-22 2019-12-03 腾讯科技(深圳)有限公司 任务处理方法、装置及存储介质
CN110807657A (zh) * 2019-10-25 2020-02-18 网银在线(北京)科技有限公司 订单处理方法、装置、设备及计算机可读存储介质
CN112181612A (zh) * 2020-08-31 2021-01-05 深圳市优必选科技股份有限公司 任务处理方法、装置、电子设备及计算机可读存储介质
CN112559156A (zh) * 2020-12-23 2021-03-26 百果园技术(新加坡)有限公司 一种多依赖任务分组管理方法、装置、设备及存储介质
CN112765031A (zh) * 2021-01-25 2021-05-07 北京航空航天大学 一种群智化漏洞挖掘任务的分解方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JIANQIAO LUO等: "A Model-Driven Parallel Processing System for IoT Data Based on User-Defined Functions", 《2020 IEEE 5TH INTERNATIONAL CONFERENCE ON CLOUD COMPUTING AND BIG DATA ANALYTICS (ICCCBDA)》, 19 May 2020 (2020-05-19), pages 463 - 470 *
唐姝妮: "面向物流车辆的网络高并发I/O系统的设计与实现", 《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》, 15 February 2017 (2017-02-15), pages 034 - 1209 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114244918A (zh) * 2021-12-08 2022-03-25 中信银行股份有限公司 基于责任链的数据处理方法、装置、设备及可读存储介质
CN114385341A (zh) * 2022-03-24 2022-04-22 国能大渡河流域水电开发有限公司 一种分布式任务调度方法及调度平台

Also Published As

Publication number Publication date
CN113467908B (zh) 2024-02-20

Similar Documents

Publication Publication Date Title
CN113238838B (zh) 一种任务调度方法、装置及计算机可读存储介质
US9063790B2 (en) System and method for performing distributed parallel processing tasks in a spot market
US7441240B2 (en) Process scheduling apparatus, process scheduling method, program for process scheduling, and storage medium recording a program for process scheduling
CN110427252B (zh) 基于任务依赖关系的任务调度方法、装置及存储介质
EP2962192B1 (en) System and method thereof to optimize boot time of computers having multiple cpus
CN111625331B (zh) 任务调度方法、装置、平台、服务器及存储介质
CN113467908B (zh) 任务执行方法、装置、计算机可读存储介质及终端设备
CN111190753B (zh) 分布式任务处理方法、装置、存储介质和计算机设备
CN115373835A (zh) Flink集群的任务资源调整方法、装置及电子设备
CN112181621A (zh) 一种任务调度系统、方法、设备及存储介质
CN110611707A (zh) 一种任务调度的方法及装置
WO2023115931A1 (zh) 大数据组件参数调整方法、装置、电子设备及存储介质
CN112667383A (zh) 一种任务执行及调度方法、系统、装置、计算设备及介质
CN115964153A (zh) 一种异步任务处理方法、装置、设备以及存储介质
CN111666141A (zh) 任务调度方法、装置、设备及计算机存储介质
CN112231073A (zh) 一种分布式任务调度方法及其装置
US20230078739A1 (en) Faas distributed computing method and apparatus
CN111913858A (zh) 一种压力测试系统和方法
CN116501468A (zh) 批量作业处理方法、装置及电子设备
CN115858499A (zh) 一种数据库分区处理方法、装置、计算机设备和存储介质
CN115437766A (zh) 一种任务处理方法和装置
CN112948096A (zh) 一种批量调度方法、装置和设备
CN110245009B (zh) 周期任务分配方法、装置、计算机设备和存储介质
CN112052087A (zh) 动态资源调整与迁移的深度学习训练系统及方法
CN113032110A (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