CN117311950B - 任务处理方法、任务处理装置、电子设备及存储介质 - Google Patents

任务处理方法、任务处理装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117311950B
CN117311950B CN202311600426.6A CN202311600426A CN117311950B CN 117311950 B CN117311950 B CN 117311950B CN 202311600426 A CN202311600426 A CN 202311600426A CN 117311950 B CN117311950 B CN 117311950B
Authority
CN
China
Prior art keywords
task
executed
information
time
execution
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.)
Active
Application number
CN202311600426.6A
Other languages
English (en)
Other versions
CN117311950A (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.)
Contemporary Amperex Technology Co Ltd
Original Assignee
Contemporary Amperex 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 Contemporary Amperex Technology Co Ltd filed Critical Contemporary Amperex Technology Co Ltd
Priority to CN202311600426.6A priority Critical patent/CN117311950B/zh
Publication of CN117311950A publication Critical patent/CN117311950A/zh
Application granted granted Critical
Publication of CN117311950B publication Critical patent/CN117311950B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请公开了一种任务处理方法、任务处理装置、电子设备及存储介质。其中,该方法包括:将待执行任务的任务信息写入内存;根据任务信息,确定待执行任务是否满足触发时机;在待执行任务满足触发时机的情况下,执行待执行任务;其中,针对时间触发的待执行任务,其执行过程具体为:根据任务依赖关系对待执行任务进行依赖检查;在依赖检查成功的情况下,运行待执行任务的任务程序;在任务程序运行成功的情况下,输出运行结果。本申请方案将任务信息与业务数据库解耦,可提升任务信息的加载效率,且还针对时间触发的任务提出了依赖检查的操作,可提升任务链的执行成功率。

Description

任务处理方法、任务处理装置、电子设备及存储介质
技术领域
本申请属于数据处理技术领域,尤其涉及一种任务处理方法、任务处理装置、电子设备及计算机可读存储介质。
背景技术
数据平台中通常运行有多种多样大量的数据任务,这些大量的数据任务还伴随有大量与任务相关的信息,也即任务信息。当前,任务信息一般耦合在具体的业务数据库中。随着业务的发展,业务数据库中所存储的数据也越来越多,从而导致业务数据库中的任务信息的加载效率越来越低,影响到各数据任务,特别是任务链的正常执行。
发明内容
本申请提供了一种任务处理方法、任务处理装置、电子设备及计算机可读存储介质,可提升任务信息的加载效率及任务链的执行效率。
第一方面,本申请提供了一种任务处理方法,包括:
将待执行任务的任务信息写入内存;
根据任务信息,确定待执行任务是否满足触发时机;
在待执行任务满足触发时机的情况下,执行待执行任务;
其中,任务信息包括任务触发参数;任务触发参数包括:任务执行时间;根据任务信息,确定待执行任务是否满足触发时机,包括:
确定当前时间是否与任务执行时间相匹配;
在当前时间与任务执行时间相匹配的情况下,确定待执行任务满足触发时机;
其中,任务信息还包括:任务依赖关系;执行待执行任务,包括:
根据任务依赖关系对待执行任务进行依赖检查,依赖检查用于检查待执行任务所依赖的任务是否执行成功;
在依赖检查的结果指示成功的情况下,运行待执行任务的任务程序;
在任务程序运行成功的情况下,输出运行结果。
任务信息不再与业务数据一起存储于业务数据库,而是存储于内存。由于内存的读取速度远快于存储有大量业务数据的业务数据库,因而可提升任务信息的加载效率,使各项任务可在对应的触发时机被正常执行。在此基础上,针对时间触发的任务,还提出了依赖检查的操作,可减少出现任务链执行失败的情况。
在第一方面的一种可能的实现方式中,任务信息包括任务触发参数;任务触发参数包括:上游任务信息;根据任务信息,确定待执行任务是否满足触发时机,包括:
确定上游任务的执行状态,上游任务为上游任务信息所指示的任务;
在执行状态为执行成功的情况下,确定待执行任务满足触发时机。
在第一方面的一种可能的实现方式中,任务处理方法还包括:
在依赖检查的结果指示失败,或者任务程序运行失败的情况下,等待指定时长后返回执行根据任务依赖关系对待执行任务进行依赖检查的步骤及后续步骤,并更新重试次数,直至输出运行结果,或者重试次数达到预设的次数阈值。
在第一方面的一种可能的实现方式中,任务处理方法还包括:
在重试次数达到次数阈值的情况下,输出任务失败提醒消息。
在第一方面的一种可能的实现方式中,将待执行任务的任务信息写入内存,包括:
响应于配置指令,获取待执行任务的任务信息;
将任务信息加载至内存。
第二方面,本申请提供了一种任务处理装置,包括:
写入模块,用于将待执行任务的任务信息写入内存;
确定模块,用于根据任务信息,确定待执行任务是否满足触发时机;
执行模块,用于在待执行任务满足触发时机的情况下,执行待执行任务;
其中,任务信息包括任务触发参数;任务触发参数包括:任务执行时间;确定模块,包括:
第一确定单元,用于确定当前时间是否与任务执行时间相匹配;
第二确定单元,用于在当前时间与任务执行时间相匹配的情况下,确定待执行任务满足触发时机;
其中,任务信息还包括:任务依赖关系;执行模块,包括:
检查单元,用于根据任务依赖关系对待执行任务进行依赖检查,依赖检查用于检查待执行任务所依赖的任务是否执行成功;
运行单元,用于在依赖检查的结果指示成功的情况下,运行待执行任务的任务程序;
输出单元,用于在任务程序运行成功的情况下,输出运行结果。
第三方面,本申请提供了一种电子设备,上述电子设备包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述第一方面的方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上述第一方面的方法的步骤。
第五方面,本申请提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被一个或多个处理器执行时实现如上述第一方面的方法的步骤。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的任务处理方法的实现流程示意图;
图2是本申请实施例提供的任务处理装置的结构框图;
图3是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合附图对本申请技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。
在本申请实施例的描述中,技术术语“第一”“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请实施例的描述中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在本申请实施例的描述中,术语“多个”指的是两个以上(包括两个),除非另有明确具体的限定。
企业在开展业务的过程中,会收集到各项与业务相关的数据,也即业务数据。这些业务数据通常会被存储于数据平台的业务数据库中,供业务分析使用,以根据业务分析结果维护和/或优化对应的业务。为实现业务分析,在数据平台中通常运行有多种多样大量的任务,包括但不限于java任务、shell任务、HiveSql任务、Flink任务、spark任务及python任务等。并且,这些任务往往彼此之间存在有上下游依赖,也即形成了一个有向无环的任务网络。除此之外,各任务通常分别伴随有与任务相关的信息,也即任务信息。
当前已提出有任务处理系统,其可通过加载各任务的任务信息来实现对各任务的管理及调度,使得各项任务可被顺利执行。一般而言,任务信息耦合在具体的业务数据库中。随着业务的发展,业务数据库中所存储的数据也越来越多,从而导致业务数据库中的任务信息的加载效率越来越低,影响到各任务的正常执行。
基于以上考虑,本申请实施例提出了一种任务处理方法,将任务信息与业务数据库解耦,以此提升任务信息的加载效率。为了说明本申请实施例所提出的技术方案,下面通过具体实施例来进行说明。
下面对本申请实施例提供的一种任务处理方法进行描述,该任务处理方法可应用于搭载有任务处理系统,也即具备任务管理及调度功能的电子设备。请参阅图1,本申请实施例中的任务处理方法包括:
步骤101,将待执行任务的任务信息写入内存。
待执行任务,指的是数据平台中等待后续被执行的任务,属于任务处理系统的管理及调度对象。电子设备可先获取该待执行任务的任务信息,然后将该任务信息写入内存中,实现内存对该任务信息的存储。其中,该任务信息为保障任务执行的基本参数。在一些示例中,任务信息可包括但不限于如下内容:任务唯一标识、任务名称、任务描述、任务触发方式、任务触发参数、任务重试的次数阈值及任务重试的指定时长。
实际应用场景下,待执行任务的数量可以有一个以上;针对每个待执行任务,电子设备均可通过本申请实施例所提出的任务处理方法对其进行管理及调度,以保障各待执行任务的顺利执行。
具体地,电子设备可接收用户输入的配置指令,并响应于配置指令,获取待执行任务的任务信息。也即,待执行任务的任务信息可由用户手动进行配置,以满足用户的需求。之后,电子设备即可将已配置的任务信息加载至内存,以实现内存对任务信息的存储。当然,电子设备还可接收用户的编辑指令,并响应于编辑指令,对内存中所存储的内容进行修改,包括但不限于修改、添加和/或删除待执行任务的任务信息等。
在一些示例中,任务处理系统可基于APScheduler框架而实现;电子设备由此可配置apscheduler.jobstores.memory内存保存任务模式,将任务信息写入内存中,与业务数据库剥离解耦,实现快速读取。
步骤102,根据任务信息,确定待执行任务是否满足触发时机。
电子设备可访问内存读取任务信息。由于任务信息配置的是保障任务执行的基本参数,因而通过对任务信息的分析,可确定出对应的待执行任务的触发时机;由此,电子设备可判断该待执行任务当前是否满足其触发时机。
在待执行任务有两个以上的情况下,可以理解,内存也会存储有这两个以上待执行任务的任务信息;基于此,为保障任务管理及调度的及时性,电子设备可轮询内存中所存储的任务信息,以不间断地确认各待执行任务是否满足对应的触发时机。可以理解,由于内存的读取速度足够快,因而以上轮询的操作可得以实现。
步骤103,在待执行任务满足触发时机的情况下,执行待执行任务。
一旦确定出有满足对应的触发时机的待执行任务,电子设备即可立即执行该待执行任务;在该待执行任务执行成功的情况下,电子设备可返回其执行结果,该执行结果可存储于业务数据库,供后续需要时使用。通过以上操作,保障该待执行任务的执行时效。
在一些实施例中,针对待执行任务,任务处理系统设置有时间触发方式,具体表现为:待执行任务响应于特定的任务执行时间而触发。针对这种待执行任务,可配置其任务信息的任务触发方式为:时间触发。并且,还可配置其任务信息中的任务触发参数为:任务执行时间;或者,也可配置其任务信息中的任务触发参数为:任务执行周期及初次任务执行时间。可以理解,在配置有任务执行周期及初次任务执行时间的情况下,电子设备可由此确定出最新的任务执行时间。相应地,电子设备在执行步骤102时,可具体为;先确定当前时间是否与任务执行时间相匹配;然后,在当前时间与任务执行时间相匹配的情况下,确定待执行任务满足触发时机。也即,只要当前时间到达任务执行时间,即满足待执行任务的触发时机,电子设备可由此提交任务实例,准备开始执行该待执行任务。
仅作为示例,如果任务处理系统仅设置有时间触发方式,则针对需要依次执行的三个任务:任务A、任务B及任务C而言,任务处理系统仅能将任务A、任务B及任务C分别设置为不同的时间点触发,例如1点、2点及3点触发,这时可能出现如下情况:
情况1:任务A在1点30分提前执行成功;但由于任务B设置为2点触发,因而还需要等到2点才能触发任务B,这一过程浪费了半小时的等待时间。
情况2:任务A执行超时,没有在2点前执行成功,但由于此时已经到达任务B的执行时间,因而任务B仍会被执行。由于任务B所依赖的上游任务A没有完成,导致任务链错乱,任务B执行后可能得到错误的结果。
基于此,在一些实施例中,任务处理系统可设置有事件触发方式,具体表现为:待执行任务响应于其所依赖的任务的执行完毕而触发;也即,待执行任务可以是基于事件触发的任务,具体依赖于其所依赖的任务的完成事件而触发。针对这种待执行任务,可配置其任务信息的任务触发方式为:事件触发;并且,还可配置其任务信息中的任务触发参数为:上游任务信息。相应地,电子设备在执行步骤102时,可具体为;确定上游任务的执行状态,上游任务为上游任务信息所指示的任务。在执行状态为执行成功的情况下,确定待执行任务满足触发时机。
前文已介绍了,针对事件触发的待执行任务,只要其所依赖的任务成功执行,即可触发该待执行任务的执行。为实现此效果,电子设备可先将上游任务信息所指示的任务确定为上游任务(也即待执行任务所依赖的任务),然后可确定上游任务的执行状态。在上游任务的执行状态为执行成功的情况下,针对事件触发的待执行任务而言,已满足其触发时机。电子设备可由此提交任务实例,在该任务实例中运行该待执行任务的任务程序。通过这种事件触发方式,可使得强关联的任务之间,下游任务强制依赖上游任务的执行成功才能进行派发,一方面可节约由于任务提前完成而导致的等待时间,另一方面还可保证任务链按顺序高效执行,防止任务超时导致任务链错乱。
需要注意的是,实际应用中,上游任务可以是待执行任务之外的其它任务,也可以是待执行任务自身;可以理解,在上游任务为待执行任务自身的情况下,可认为该待执行任务为自依赖任务。例如,某个任务期望可不间断地循环执行,且每次执行时均需要使用到前次的执行结果,则该任务作为事件触发的待执行任务时,其上游任务为其自身。
需要注意的是,本申请实施例不对上游任务的任务触发方式作出限定;也即,上游任务可以是事件触发的任务,也可以是时间触发的任务。除此之外,本申请实施例也不对上游任务的部署位置作出限定;也即,上游任务可以是内部任务,也可以是外部任务。其中,内部任务,指的是受任务处理系统管理及调度的任务;外部任务,指的是不受任务处理系统管理及调度的任务。
在一些示例中,电子设备可通过该上游任务的执行结果确定该上游任务的执行状态;或者,该上游任务的执行状态可通过状态标识进行表示,电子设备可通过该状态标识确定该上游任务的执行状态,本申请实施例对此不作限定。
需要注意的是,本申请实施例中,待执行任务的任务触发方式并不局限于一种;也即,时间触发及事件触发之间并不存在冲突:待执行任务可以为仅事件触发的任务,也可以为仅时间触发的任务,还可以既是时间触发的任务,又是事件触发的任务。例如,针对某一待执行任务,可将其配置为:在每天1点触发执行(时间触发),或者,在另一任务A执行成功后触发执行(事件触发);也即,满足时间触发及事件触发的任一项触发时机时,均可触发执行该待执行任务。
在一些实施例中,针对时间触发的待执行任务,为减少出现该待执行任务因任务之间的依赖关系而执行失败的情况,电子设备可具体通过以下步骤执行该待执行任务:
C1、根据任务依赖关系对待执行任务进行依赖检查。
针对任务触发方式为时间触发的待执行任务,用户可根据该待执行任务的实际情况,考虑是否在该待执行任务的任务信息中配置任务依赖关系。在其任务依赖关系未被配置为空的情况下,电子设备可在开始运行该待执行任务的任务实例时,先根据该任务依赖关系对待执行任务进行依赖检查,具体为:检查待执行任务所依赖的任务(也即上游任务)是否执行成功。
考虑到上游任务可能是外部任务,也可能是内部任务,因而电子设备有必要依次进行内外部依赖检查。需要注意的是,本申请实施例并不限定内外部依赖检查的顺序。例如,电子设备可以是先进行外部依赖检查,再进行内部依赖检查;或者,电子设备也可以是先进行内部依赖检查,再进行外部依赖检查。
需要注意的是,实际应用中,上游任务可以是待执行任务之外的其它任务,也可以是待执行任务自身;可以理解,在上游任务为待执行任务自身的情况下,可认为该待执行任务为自依赖任务。例如,某个任务期望可按照一定周期循环执行,且每次执行时均需要使用到前次的执行结果,则该任务作为时间触发的待执行任务时,其依赖检查所要考虑的上游任务为自身。
C2、在依赖检查的结果指示成功的情况下,运行待执行任务的任务程序。
在依赖检查的结果指示成功,也即待执行任务所依赖的任务执行成功的情况下,电子设备可开始运行待执行任务的任务程序。其中,任务程序存放于指定路径,且该任务程序可以是java,shell,HiveSql,Flink,spark及python中的任一类。
C3、在任务程序运行成功的情况下,输出运行结果。
在任务程序运行成功的情况下,该任务程序可输出运行结果,这一运行结果即为待执行任务的执行结果。可以理解,如果该待执行任务有下游任务(也即依赖于该待执行任务的任务),且该下游任务被配置为事件触发,则电子设备可基于该执行结果触发该下游任务的执行,由此实现任务链的高效执行。
在一些实施例中,针对时间触发的待执行任务,在依赖检查的结果指示失败,或者任务程序运行失败的情况下,电子设备可等待任务信息中已配置的指定时长后,返回执行根据任务依赖关系对待执行任务进行依赖检查的步骤及后续步骤,并更新重试次数,直至输出运行结果,或者重试次数达到任务信息中已配置的次数阈值。类似地,针对事件触发的待执行任务,在任务程序运行失败的情况下,电子设备也可等待任务信息中已配置的指定时长后再次运行任务程序,并更新重试次数,直至输出运行结果,或者重试次数达到任务信息中已配置的次数阈值。通过以上任务重试操作,提升任务执行成功的可能性。但为了避免因无限制的重试而抢占系统资源,电子设备可以在重试次数达到次数阈值的情况下,停止重试,并输出任务失败提醒消息,用以提醒用户该待执行任务存在异常。
在一些实施例中,任务处理系统中还可引入生命周期管理机制,具体可表现为:在步骤103之后,确定任务处理系统中是否设置有生命周期参数;在设置有生命周期参数的情况下,将业务数据库中存入时间与该生命周期参数不匹配的业务数据卸载,仅保留存入时间与该生命周期参数相匹配的业务数据。其中,生命周期参数具体可为时长数据或者时段数据。通过该生命周期管理机制,使得业务数据库中过久远的历史数据可被及时剔除,避免业务数据库随着使用时间的增长而越发臃肿。
在一些实施例中,任务处理系统中还可引入任务执行校验机制,具体可表现为:在步骤103之后,对目标表中的数据量进行统计,并根据统计结果判断该已执行任务是否执行成功。其中,该目标表为已执行任务在业务数据库中所操作的数据表;该已执行任务与步骤103中的待执行任务实际为同一任务,只是执行状态存在差异;也即,在步骤103后,该待执行任务即成为已执行任务。可以理解,各项任务实际上都是数据任务,其通常目的是进行数据同步;因而,本申请实施例通过对已执行任务所操作的目标表中的数据量进行统计,获知该目标表的数据量变化情况,由此确定已执行任务是否真的成功执行。
由上可见,本申请实施例中,任务信息不再与业务数据一起存储于业务数据库,而是存储于内存。由于内存的读取速度远快于存储有大量业务数据的业务数据库,因而可提升任务信息的加载效率,使各项任务可在对应的触发时机被正常执行。在此基础上,针对时间触发的任务,还提出了依赖检查的操作,可减少出现任务链执行失败的情况。并且,本申请实施例还提出了事件触发机制,以使得多个任务组成的任务链可被及时衔接执行。
应理解,实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文所提供的任务处理方法,本申请实施例还提供了一种任务处理装置。参见图2,本申请实施例中的任务处理装置2包括:
写入模块201,用于将待执行任务的任务信息写入内存;
确定模块202,用于根据任务信息,确定待执行任务是否满足触发时机;
执行模块203,用于在待执行任务满足触发时机的情况下,执行待执行任务;
其中,任务信息包括任务触发参数;任务触发参数包括:任务执行时间;确定模块202,包括:
第一确定单元,用于确定当前时间是否与任务执行时间相匹配;
第二确定单元,用于在当前时间与任务执行时间相匹配的情况下,确定待执行任务满足触发时机;
其中,任务信息还包括:任务依赖关系;执行模块203,包括:
检查单元,用于根据任务依赖关系对待执行任务进行依赖检查,依赖检查用于检查待执行任务所依赖的任务是否执行成功;
运行单元,用于在依赖检查的结果指示成功的情况下,运行待执行任务的任务程序;
输出单元,用于在任务程序运行成功的情况下,输出运行结果。
在一些实施例中,任务信息包括任务触发参数;任务触发参数包括:上游任务信息;确定模块202,包括:
第三确定单元,用于确定上游任务的执行状态,上游任务为上游任务信息所指示的任务;
第四确定单元,用于在执行状态为执行成功的情况下,确定待执行任务满足触发时机。
在一些实施例中,任务处理装置2在依赖检查的结果指示失败,或者任务程序运行失败的情况下,等待指定时长后再次触发运行检查单元并更新重试次数,直至输出单元输出运行结果,或者重试次数达到预设的次数阈值。
在一些实施例中,输出单元,还用于在重试次数达到次数阈值的情况下,输出任务失败提醒消息。
在一些实施例中,写入模块201,包括:
获取单元,用于响应于配置指令,获取待执行任务的任务信息;
加载单元,用于将任务信息加载至内存。
由上可见,本申请实施例中,任务信息不再与业务数据一起存储于业务数据库,而是存储于内存。由于内存的读取速度远快于存储有大量业务数据的业务数据库,因而可提升任务信息的加载效率,使各项任务可在对应的触发时机被正常执行。在此基础上,针对时间触发的任务,还提出了依赖检查的操作,可减少出现任务链执行失败的情况。并且,本申请实施例还提出了事件触发机制,以使得多个任务组成的任务链可被及时衔接执行。
对应于上文所提供的任务处理方法,本申请实施例还提供了一种电子设备。参见图3,本申请实施例中的电子设备3包括:存储器301,一个或多个处理器302(图3中仅示出一个)及存储在存储器301上并可在处理器上运行的计算机程序。其中:存储器301可用于存储软件程序以及模块,处理器302通过运行存储在存储器301的软件程序以及模块,从而执行电子设备的各种功能应用以及数据处理。具体地,处理器302通过运行存储在存储器301的计算机程序时实现以下步骤:
将待执行任务的任务信息写入内存;
根据任务信息,确定待执行任务是否满足触发时机;
在待执行任务满足触发时机的情况下,执行待执行任务;
其中,任务信息包括任务触发参数;任务触发参数包括:任务执行时间;根据任务信息,确定待执行任务是否满足触发时机,包括:
确定当前时间是否与任务执行时间相匹配;
在当前时间与任务执行时间相匹配的情况下,确定待执行任务满足触发时机;
其中,根据任务依赖关系对待执行任务进行依赖检查,依赖检查用于检查待执行任务所依赖的任务是否执行成功;
在依赖检查的结果指示成功的情况下,运行待执行任务的任务程序;
在任务程序运行成功的情况下,输出运行结果。
假设为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,任务信息包括任务触发参数;任务触发参数包括:上游任务信息;根据任务信息,确定待执行任务是否满足触发时机,包括:
确定上游任务的执行状态,上游任务为上游任务信息所指示的任务;
在执行状态为执行成功的情况下,确定待执行任务满足触发时机。
在第一种可能的实施方式作为基础而提供的第三种可能的实施方式中,处理器302通过运行存储在存储器301的计算机程序时还实现以下步骤:
在依赖检查的结果指示失败,或者任务程序运行失败的情况下,等待指定时长后返回执行根据任务依赖关系对待执行任务进行依赖检查的步骤及后续步骤,并更新重试次数,直至输出运行结果,或者重试次数达到预设的次数阈值。
在第三种可能的实施方式作为基础而提供的第四种可能的实施方式中,处理器302通过运行存储在存储器301的计算机程序时还实现以下步骤:
在重试次数达到次数阈值的情况下,输出任务失败提醒消息。
在第一种可能的实施方式作为基础,或者第二种可能的实施方式作为基础,或者第三种可能的实施方式作为基础,或者第四种可能的实施方式作为基础而提供的第五种可能的实施方式中,将待执行任务的任务信息写入内存,包括:
响应于配置指令,获取待执行任务的任务信息;
将任务信息加载至内存。
应当理解,在本申请实施例中,所称处理器302可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其它通用处理器、数字信号处理器 (DigitalSignal Processor,DSP)、专用集成电路 (Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器301可以包括只读存储器和随机存取存储器,并向处理器302 提供指令和数据。存储器301的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器301还可以存储设备类型的信息。
由上可见,本申请实施例中,任务信息不再与业务数据一起存储于业务数据库,而是存储于内存。由于内存的读取速度远快于存储有大量业务数据的业务数据库,因而可提升任务信息的加载效率,使各项任务可在对应的触发时机被正常执行。在此基础上,针对时间触发的任务,还提出了依赖检查的操作,可减少出现任务链执行失败的情况。并且,本申请实施例还提出了事件触发机制,以使得多个任务组成的任务链可被及时衔接执行。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关联的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (8)

1.一种任务处理方法,其特征在于,包括:
针对每个待执行任务,将待执行任务的任务信息写入内存,以使得电子设备轮询所述内存中所存储的任务信息;
根据所述任务信息,确定所述待执行任务是否满足触发时机;
在所述待执行任务满足所述触发时机的情况下,提交所述待执行任务的任务实例,执行所述待执行任务;
其中,所述任务信息包括任务触发参数;所述任务触发参数包括:任务执行时间;所述根据所述任务信息,确定所述待执行任务是否满足触发时机,包括:
确定当前时间是否与所述任务执行时间相匹配;
在所述当前时间与所述任务执行时间相匹配的情况下,确定所述待执行任务满足所述触发时机;
其中,所述任务信息还包括:任务依赖关系;所述执行所述待执行任务,包括:
在开始运行所述任务实例时,根据所述任务依赖关系对所述待执行任务依次进行内外部依赖检查,所述内外部依赖检查用于检查所述待执行任务所依赖的内外部任务是否执行成功,其中,内部任务,指的是受任务处理系统管理及调度的任务,外部任务,指的是不受任务处理系统管理及调度的任务;
在所述内外部依赖检查的结果指示成功的情况下,运行所述待执行任务的任务程序;
在所述任务程序运行成功的情况下,输出运行结果。
2.如权利要求1所述的任务处理方法,其特征在于,所述任务信息包括任务触发参数;所述任务触发参数包括:上游任务信息;所述根据所述任务信息,确定所述待执行任务是否满足触发时机,包括:
确定上游任务的执行状态,所述上游任务为所述上游任务信息所指示的任务;
在所述执行状态为执行成功的情况下,确定所述待执行任务满足所述触发时机。
3.如权利要求1所述的任务处理方法,其特征在于,所述任务处理方法还包括:
在所述内外部依赖检查的结果指示失败,或者所述任务程序运行失败的情况下,等待指定时长后返回执行所述根据所述任务依赖关系对所述待执行任务进行内外部依赖检查的步骤及后续步骤,并更新重试次数,直至输出所述运行结果,或者所述重试次数达到预设的次数阈值。
4.如权利要求3所述的任务处理方法,其特征在于,所述任务处理方法还包括:
在所述重试次数达到所述次数阈值的情况下,输出任务失败提醒消息。
5.如权利要求1至4任一项所述的任务处理方法,其特征在于,所述将待执行任务的任务信息写入内存,包括:
响应于配置指令,获取所述待执行任务的任务信息;
将所述任务信息加载至所述内存。
6.一种任务处理装置,其特征在于,包括:
写入模块,用于针对每个待执行任务,将待执行任务的任务信息写入内存,以使得电子设备轮询所述内存中所存储的任务信息;
确定模块,用于根据所述任务信息,确定所述待执行任务是否满足触发时机;
执行模块,用于在所述待执行任务满足所述触发时机的情况下,提交所述待执行任务的任务实例,执行所述待执行任务;
其中,所述任务信息包括任务触发参数;所述任务触发参数包括:任务执行时间;所述确定模块,包括:
第一确定单元,用于确定当前时间是否与所述任务执行时间相匹配;
第二确定单元,用于在所述当前时间与所述任务执行时间相匹配的情况下,确定所述待执行任务满足所述触发时机;
其中,所述任务信息还包括:任务依赖关系;所述执行模块,包括:
检查单元,用于在开始运行所述任务实例时,根据所述任务依赖关系对所述待执行任务依次进行内外部依赖检查,所述内外部依赖检查用于检查所述待执行任务所依赖的内外部任务是否执行成功,其中,内部任务,指的是受任务处理系统管理及调度的任务,外部任务,指的是不受任务处理系统管理及调度的任务;
运行单元,用于在所述内外部依赖检查的结果指示成功的情况下,运行所述待执行任务的任务程序;
输出单元,用于在所述任务程序运行成功的情况下,输出运行结果。
7.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的方法。
CN202311600426.6A 2023-11-28 2023-11-28 任务处理方法、任务处理装置、电子设备及存储介质 Active CN117311950B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311600426.6A CN117311950B (zh) 2023-11-28 2023-11-28 任务处理方法、任务处理装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311600426.6A CN117311950B (zh) 2023-11-28 2023-11-28 任务处理方法、任务处理装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN117311950A CN117311950A (zh) 2023-12-29
CN117311950B true CN117311950B (zh) 2024-04-26

Family

ID=89286899

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311600426.6A Active CN117311950B (zh) 2023-11-28 2023-11-28 任务处理方法、任务处理装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117311950B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928653A (zh) * 2019-10-24 2020-03-27 浙江大搜车软件技术有限公司 跨集群任务的执行方法、装置、计算机设备和存储介质
WO2020140683A1 (zh) * 2019-01-04 2020-07-09 深圳壹账通智能科技有限公司 任务调度方法、装置、计算机设备和存储介质
CN111950988A (zh) * 2020-08-18 2020-11-17 北京字节跳动网络技术有限公司 分布式工作流调度方法、装置、存储介质及电子设备
WO2020232871A1 (zh) * 2019-05-20 2020-11-26 平安科技(深圳)有限公司 一种微服务依赖分析方法及装置
CN112114956A (zh) * 2020-09-29 2020-12-22 中国银行股份有限公司 一种任务调度方法、装置和系统
CN112380218A (zh) * 2020-11-18 2021-02-19 浪潮天元通信信息系统有限公司 一种基于etl进行数据仓库各层数据表汇总的自动触发方法
CN112445587A (zh) * 2019-08-30 2021-03-05 上海华为技术有限公司 一种任务处理的方法以及任务处理装置
CN112513814A (zh) * 2020-04-01 2021-03-16 华为技术有限公司 任务调度方法及装置
CN112965793A (zh) * 2021-01-21 2021-06-15 中国互联网络信息中心 一种面向标识解析数据的数据仓库任务调度方法和系统
CN113378007A (zh) * 2020-03-09 2021-09-10 网易(杭州)网络有限公司 数据回溯方法及装置、计算机可读存储介质、电子设备
CN114035925A (zh) * 2021-11-19 2022-02-11 度小满科技(北京)有限公司 一种工作流调度方法、装置、设备及可读存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020140683A1 (zh) * 2019-01-04 2020-07-09 深圳壹账通智能科技有限公司 任务调度方法、装置、计算机设备和存储介质
WO2020232871A1 (zh) * 2019-05-20 2020-11-26 平安科技(深圳)有限公司 一种微服务依赖分析方法及装置
CN112445587A (zh) * 2019-08-30 2021-03-05 上海华为技术有限公司 一种任务处理的方法以及任务处理装置
CN110928653A (zh) * 2019-10-24 2020-03-27 浙江大搜车软件技术有限公司 跨集群任务的执行方法、装置、计算机设备和存储介质
CN113378007A (zh) * 2020-03-09 2021-09-10 网易(杭州)网络有限公司 数据回溯方法及装置、计算机可读存储介质、电子设备
CN112513814A (zh) * 2020-04-01 2021-03-16 华为技术有限公司 任务调度方法及装置
CN111950988A (zh) * 2020-08-18 2020-11-17 北京字节跳动网络技术有限公司 分布式工作流调度方法、装置、存储介质及电子设备
CN112114956A (zh) * 2020-09-29 2020-12-22 中国银行股份有限公司 一种任务调度方法、装置和系统
CN112380218A (zh) * 2020-11-18 2021-02-19 浪潮天元通信信息系统有限公司 一种基于etl进行数据仓库各层数据表汇总的自动触发方法
CN112965793A (zh) * 2021-01-21 2021-06-15 中国互联网络信息中心 一种面向标识解析数据的数据仓库任务调度方法和系统
CN114035925A (zh) * 2021-11-19 2022-02-11 度小满科技(北京)有限公司 一种工作流调度方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN117311950A (zh) 2023-12-29

Similar Documents

Publication Publication Date Title
CN108319495B (zh) 任务处理方法及装置
CN110704173A (zh) 任务调度方法、调度系统、电子设备及计算机存储介质
CN104718534A (zh) 用于占先重启多子系统移动通信设备中的软件以提高平均故障间隔时间的方法
EP2416246A1 (en) Extensibility of business process and application logic
CN112748993A (zh) 任务执行方法、装置、存储介质及电子设备
CN107577527B (zh) 任务生成、调度方法及装置
CN117311950B (zh) 任务处理方法、任务处理装置、电子设备及存储介质
CN111124645B (zh) 非连续周期的文件数据处理方法及装置
CN109284331A (zh) 基于业务数据资源的制证信息获取方法、终端设备及介质
CN111638892A (zh) 一种优化应用更新排序的方法、装置、系统及存储介质
US20200348926A1 (en) System and method for automating environment management of one or more software applications
CN110688206A (zh) 定时任务调度方法、装置、计算机设备及存储介质
CN113342512B (zh) 一种io任务静默与驱动方法、装置及相关设备
CN110046809B (zh) 作业调度方法及装置
CN110221952B (zh) 业务数据的处理方法及装置、业务数据处理系统
CN109901933B (zh) 业务系统的操作方法及装置、存储介质、电子装置
CN111258728A (zh) 任务的执行方法及装置、存储介质和电子装置
CN110959152B (zh) 访问控制装置
CN114706671B (zh) 一种多处理器调度优化方法与系统
CN112200536B (zh) 一种测试例监控管理方法、终端设备及存储介质
CN113127056B (zh) 一种信息处理方法、装置、设备及可读存储介质
CN117632443B (zh) 业务流程的流转控制方法及装置、设备、介质
WO2024066743A1 (zh) 版本发布方法、电子设备和计算机可读存储介质
CN112650573B (zh) 一种任务调度方法和装置
CN116954854A (zh) Ip-pbx中调度定时任务的方法、ip-pbx及存储介质

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