CN103294533B - 任务流控制方法及系统 - Google Patents

任务流控制方法及系统 Download PDF

Info

Publication number
CN103294533B
CN103294533B CN201210421753.0A CN201210421753A CN103294533B CN 103294533 B CN103294533 B CN 103294533B CN 201210421753 A CN201210421753 A CN 201210421753A CN 103294533 B CN103294533 B CN 103294533B
Authority
CN
China
Prior art keywords
task
distributes
queue
result
action 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.)
Active
Application number
CN201210421753.0A
Other languages
English (en)
Other versions
CN103294533A (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.)
Beijing ahtech network Safe Technology Ltd
Original Assignee
Beijing Antiy Electronic Equipment 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 Beijing Antiy Electronic Equipment Co Ltd filed Critical Beijing Antiy Electronic Equipment Co Ltd
Priority to CN201210421753.0A priority Critical patent/CN103294533B/zh
Publication of CN103294533A publication Critical patent/CN103294533A/zh
Application granted granted Critical
Publication of CN103294533B publication Critical patent/CN103294533B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供了一种任务流控制方法及系统,所述方法主要包括任务派发,根据系统环境,确定将任务派发到任务队列或待处理队列;任务执行流程从任务队列中获取并执行任务;任务结果回收流程从任务结果队列中读取任务执行结果,根据具体执行结果来判断是否需要进行任务的二次派发,或生成子任务;任务监控流程通过查询待处理任务队列来判定当前待处理任务数量是否接近预设阀值,并可以结合配套的数据记录还跟踪具体任务的状态变化。本发明还提出了适用于上述方法的系统,包括任务派发模块、任务执行模块、任务执行结果回收模块和任务监控模块。本发明的方法解决了现有技术中各任务之间不能联动管理、管理方法不够灵活等问题。

Description

任务流控制方法及系统
技术领域
本发明涉及计算机控制管理领域,特别涉及一种任务流的控制方法及系统。
背景技术
在计算机领域,传统的任务管理主要涉及任务的启动、暂停、恢复和终止等操作,主要集中在单个任务的管理。但随着大型、超大型作业系统的出现,经常涉及到更为全面和复杂的任务控制管理需求,如在现实的任务处理中经常存在这样的场景:任务从多个来源发出,各个来源的紧急程度不同,并且一个任务可能会延伸出多个小的任务,再由多个小任务汇总成整个任务的执行结果等。由于现有的任务管理主要针对单一任务,各个任务之间并没有关联,因此在实际应用中很难进行联动管理,整个任务系统的健壮性也很难得到保证。
发明内容
本发明提供了一种任务流控制方法及系统,解决了现有任务流控制方法中各任务之间不能联动管理的缺点,提出了一种更灵活的任务管理方法,以满足大型作业系统中对任务流控制的需要。
一种任务流控制方法,包括:
预定义任务属性,所述任务属性包括任务ID、任务名称、任务类型、子任务、任务重要性、任务优先级、任务执行超时时间、延迟执行时间、任务执行参数、重试次数、重试计数、任务状态、任务执行结果、任务执行异常信息、任务开始时间和任务结束时间;其中任务类型包括普通任务和复合任务,每个复合任务由至少两个子任务组成;
任务派发,循环判断系统资源是否能够满足派发任务所需要的资源,如果是,则将任务派发到任务队列,否则将任务放入待处理队列,等待重新判断;
任务执行,循环按照任务优先级,从任务队列中获取并执行任务,并将任务执行结果发送到任务结果队列中;
任务执行结果回收,循环从任务结果队列中获取任务执行结果,根据任务执行结果判断任务需要派发子任务或重新派发,并根据任务类型确定复合任务,根据预定义任务退出条件,计算复合任务结果;
任务监控,循环判断待处理队列中的任务数量是否达到预设阈值,如果是,则进行报警处理,并获取待处理队列中的任务,否则直接获取待处理队列中的任务;判断获取的任务是否超时,如果是,则将任务状态设置为超时,并判断任务是否需要重试,否则判断下一任务;判断超时任务是否需要重试,如果是,则将任务进行重新派发,否则判断下一任务;
任务监控还可以结合配套的数据记录还跟踪具体任务的状态变化。
其中任务类型包括普通任务和复合任务,每个复合任务由至少两个子任务组成,普通任务则为不可拆分的单一任务;任务重要性包括必须完成或可选完成,任务重要性决定了该任务的执行结果是否影响到整个任务的结果计算,尤其对于子任务来说,如果一个子任务为必须完成,但在执行过程中出错,则整个任务判定为失败,如果为可选任务,则其运行结果并不直接影响整个任务的结果;任务执行超时时间是指任务所允许的最长执行时间,延迟执行时间为延迟派发任务的时间;任务执行参数包含了任务执行过程中所需要的各种参数;任务状态记录当前任务执行的结果,包括延迟处理、已派发、派发失败、已开始、已取消、超时、执行成功和执行失败;任务执行结果包括当前任务执行成功、失败,或下一步需要执行的指令;任务执行异常信息中记录在任务执行过程中所发生的各种异常。
所述的任务流控制方法中,所述的任务派发,循环判断系统资源是否能够派发新任务,如果是,则将新任务派发到任务队列包括:根据预定义任务属性生成待执行任务;
判断延迟执行时间,若延迟执行时间大于0,则将任务状态标识为延迟处理,当达到延迟执行时间后,将任务派发到任务队列;否则直接将任务派发到任务队列;
判断任务派发是否成功,如果任务派发成功,则将任务状态标识为已派发,否则将任务状态标识为派发失败,并将任务放入待处理队列。
所述的任务流控制方法中,循环按照任务优先级从任务队列中获取并执行任务,包括:
获取到任务时,将任务状态标识为已开始,并记录开始时间;
按照任务的执行参数执行任务;如果在执行任务过程中发生异常,则记录异常信息及任务结束时间,同时将任务状态标识为执行失败;如果任务执行成功,则记录任务执行结果及任务结束时间,同时将任务状态标识为执行成功。
所述的任务流控制方法中,所述的根据任务执行结果判断任务需要派发子任务或重新派发,并根据任务类型确定复合任务的方法为:
a、判断任务执行结果是否成功,如果是,则执行步骤b,否则执行步骤c;
b、判断是否存在下一步需要执行的指令,如果是,则派发子任务,否则执行步骤d;
c、判断任务是否需要重试,如果是,则将任务进行重新派发,并进行下一任务执行结果判断,否则执行步骤d;
d、判断该任务是否为复合任务中的子任务,如果是,则根据预定义任务退出条件,计算复合任务结果,并进行下一任务执行结果判断;否则,直接进行下一任务执行结果判断。
所述的任务流控制方法中,所述的任务派发、任务执行、任务执行结果回收和任务监控过程中还包括,在执行下一循环前,判断是否存在停止信号或文件,如果存在,则退出循环,否则开始下一循环。
所述的任务流控制方法中,所述的判断任务是否需要重试或判断超时任务是否需要重试的方法为,将重试计数与重试次数比较,若重试计数小于重试次数,则任务重新派发,更改重试计数,并将任务转至任务派发流程;若重试计数等于重试次数,则任务不再重新派发。
本发明还提供一种任务流控制系统,包括:
首先预定义任务流控制系统中任务属性,所述任务属性包括任务ID、任务名称、任务类型、 子任务、任务重要性、任务优先级、任务执行超时时间、延迟执行时间、任务执行参数、重试次数、重试计数、任务状态、任务执行结果、任务执行异常信息、任务开始时间和任务结束时间;其中任务类型包括普通任务和复合任务,每个复合任务由至少两个子任务组成;
任务派发模块,循环判断系统资源是否能够满足派发任务所需要的资源,如果是,则将任务派发到任务队列,否则将任务放入待处理队列,等待重新判断;
任务执行模块,循环按照任务优先级,从任务队列中获取并执行任务,并将任务执行结果发送到任务结果队列中;
任务执行结果回收模块,循环从任务结果队列中获取任务执行结果,根据任务执行结果判断任务需要派发子任务或重新派发,并根据任务类型确定复合任务,根据预定义任务退出条件,计算复合任务结果;
任务监控模块,循环判断待处理队列中的任务数量是否达到预设阈值,如果是,则进行报警处理,并获取待处理队列中的任务,否则直接获取待处理队列中的任务;判断任务是否超时,如果是,则将任务状态设置为超时,并判断任务是否需要重试,否则判断下一任务;判断超时任务是否需要重试,如果是,则将任务进行重新派发,否则判断下一任务。
所述的任务流控制系统中,所述的预定义任务属性中:
任务重要性包括必须完成或可选完成;
延迟执行时间为延迟派发任务的时间;
任务状态包括延迟处理、已派发、派发失败、已开始、已取消、超时、执行成功和执行失败;
任务执行结果包括当前任务执行成功、失败,或下一步需要执行的指令。
所述的任务流控制系统中,所述的任务派发,循环判断系统资源是否能够派发新任务,如果是,则将新任务派发到任务队列包括:根据预定义任务属性生成待执行任务;
判断延迟执行时间,若延迟执行时间大于0,则将任务状态标识为延迟处理,当达到延迟执行时间后,将任务派发到任务队列;否则直接将任务派发到任务队列;
判断任务派发是否成功,如果任务派发成功,则将任务状态标识为已派发,否则将任务状态标识为派发失败,并将任务放入待处理队列。
所述的任务流控制系统中,循环按照任务优先级从任务队列中获取并执行任务,包括:
获取到任务时,将任务状态标识为已开始,并记录开始时间;
按照任务的执行参数执行任务;如果在执行任务过程中发生异常,则记录异常信息及任务结束时间,同时将任务状态标识为执行失败;如果任务执行成功,则记录任务执行结果及任务结束时间,同时将任务状态标识为执行成功。
所述的任务流控制系统中,所述的任务执行结果回收模块根据任务执行结果判断任务需要派发子任务或重新派发,并根据任务类型确定复合任务包括:
结果判断子模块,判断任务执行结果是否成功,如果是,则将任务执行结果发送到指令判断子模块,否则将任务执行结果发送到指令判断子模块;
指令判断子模块,判断是否存在下一步需要执行的指令,如果是,则派发子任务,否则将任务执行结果发送到复合任务判断子模块;
重试判断子模块,判断任务是否需要重试,如果是,则将任务进行重新派发,并判断是否退出循环,否则将任务执行结果发送到复合任务判断子模块;
复合任务判断子模块,判断该任务是否为复合任务中的子任务,如果是,则根据预定义任务退出条件,计算复合任务结果,并判断是否退出循环;否则,直接判断是否退出循环。
所述的任务流控制系统中,所述的任务派发、任务执行、任务执行结果回收和任务监控过程中还包括,在执行下一循环前,判断是否存在停止信号或文件,如果存在,则退出循环,否则开始下一循环。
所述的任务流控制系统中,所述的判断任务是否需要重试或判断超时任务是否需要重试包括,将重试计数与重试次数比较,若重试计数小于重试次数,则任务重新派发,更改重试计数,并将任务转至任务派发流程;若重试计数等于重试次数,则任务不再重新派发。
本发明提出了一种任务流控制方法及系统,所述方法主要包括任务派发,根据系统环境,确定将任务派发到任务队列或待处理队列;任务执行流程从任务队列中获取并执行任务;任务结果回收流程从任务结果队列中读取任务执行结果,根据具体执行结果来判断是否需要进行任务的二次派发,或生成子任务;任务监控流程通过查询待处理任务队列来判定当前待处理任务数量是否接近预设阈值,并可以结合配套的数据记录还跟踪具体任务的状态变化。本发明还提出了适用于上述方法的系统,包括任务派发模块、任务执行模块、任务执行结果回收模块和任务监控模块。
本发明提出的技术方案中,提出了子任务的定义,一个复合型任务的完成可以根据预定义的退出条件,根据子任务的执行记过来进行计算,并且能够完成任务的二次派发,当复合型任务的一个子任务完成后,还可以派发其需要完成的新的子任务,解决了现有传统任务处理系统中都是针对单个任务的控制,各任务之间没有关联关系的问题;并且任务属性和任务退出条件的预定义可以根据各任务的不同要求进行预定义,适应性更强;并且方法的流程和系统模块的划分方式,各功能模块之间通过队列来连接,适用面广,既可以应用于单机模式也可以满足目前分布式任务处理系统的需求。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明任务流控制方法流程图;
图2为任务派发过程一实施例流程图;
图3为任务执行过程一实施例流程图;
图4为任务执行结果回收过程一实施例流程图;
图5为任务监控过程一实施例流程图;
图6为本发明任务流控制系统结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明。
本发明提供了一种任务流控制方法及系统,解决了现有任务流控制方法中各任务之间不能联动管理的缺点,提出了一种更灵活的任务管理方法,以满足大型作业系统中对任务流控制的需要。
一种任务流控制方法,包括:
首先预定义任务属性,所述任务属性包括任务ID、任务名称、任务类型、 子任务、任务重要性、任务优先级、任务执行超时时间、延迟执行时间、任务执行参数、重试次数、重试计数、任务状态、任务执行结果、任务执行异常信息、任务开始时间和任务结束时间;
其中任务类型包括普通任务和复合任务,每个复合任务由至少两个子任务组成,普通任务则为不可拆分的单一任务;任务重要性包括必须完成或可选完成,任务重要性决定了该任务的执行结果是否影响到整个任务的结果计算,尤其对于子任务来说,如果一个子任务为必须完成,但在执行过程中出错,则整个任务判定为失败,如果为可选任务,则其运行结果并不直接影响整个任务的结果;任务执行超时时间是指任务所允许的最长执行时间,延迟执行时间为延迟派发任务的时间;任务执行参数包含了任务执行过程中所需要的各种参数;任务状态记录当前任务执行的结果,包括延迟处理、已派发、派发失败、已开始、已取消、超时、执行成功和执行失败;任务执行结果包括当前任务执行成功、失败,或下一步需要执行的指令;任务执行异常信息中记录在任务执行过程中所发生的各种异常。
所述的方法,如图1所示为:
S101任务派发,循环判断系统资源是否能够满足派发任务所需要的资源,如果是,则将任务派发到任务队列,否则将任务放入待处理队列,等待重新判断;
其中,所述的任务流控制方法中,所述的任务派发,循环判断系统资源是否能够满足派发任务所需要的资源,如果是,则将新任务派发到任务队列具体包括:根据预定义任务属性生成待执行任务;
判断延迟执行时间,若延迟执行时间大于0,则将任务状态标识为延迟处理,当达到延迟执行时间后,将任务派发到任务队列;否则直接将任务派发到任务队列;
判断任务派发是否成功,如果任务派发成功,则将任务状态标识为已派发,否则将任务状态标识为派发失败,并将任务放入待处理队列。
S102任务执行,循环按照任务优先级,从任务队列中获取并执行任务,并将任务执行结果发送到任务结果队列中;
其中循环按照任务优先级从任务队列中获取并执行任务为:
获取到任务时,将任务状态标识为已开始,并记录开始时间;
按照任务的执行参数执行任务;如果在执行任务过程中发生异常,则记录异常信息及任务结束时间,同时将任务状态标识为执行失败;如果任务执行成功,则记录任务执行结果及任务结束时间,同时将任务状态标识为执行成功。
S103任务执行结果回收,循环从任务结果队列中获取任务执行结果,根据任务执行结果判断任务需要派发子任务或重新派发,并根据任务类型确定复合任务,根据预定义任务退出条件,计算复合任务结果;
其中根据任务执行结果判断任务需要派发子任务或重新派发,并根据任务类型确定复合任务的方法为:
a、判断任务执行结果是否成功,如果是,则执行步骤b,否则执行步骤c;
b、判断是否存在下一步需要执行的指令,如果是,则派发子任务,否则执行步骤d;
c、判断任务是否需要重试,如果是,则将任务进行重新派发,并进行下一任务执行结果判断,否则执行步骤d;
d、判断该任务是否为复合任务中的子任务,如果是,则根据预定义任务退出条件,计算复合任务结果,并进行下一任务执行结果判断;否则,直接进行下一任务执行结果判断。
其中预定义的任务退出条件可根据任务的具体性质进行设定,例如,假设一个复合型任务具有五个子任务,可以预定义五个子任务中至少完成三个,则该复合型任务整体完成;或可定义五个子任务中的某几个必须完成,则该复合型任务整体完成。预定义的条件可根据任务进行调整。
S104任务监控,循环判断待处理队列中的任务数量是否达到预设阈值,如果是,则进行报警处理,并获取待处理队列中的任务,否则直接获取待处理队列中的任务;判断获取的任务是否超时,如果是,则将任务状态设置为超时,并判断任务是否需要重试,否则判断下一任务;判断超时任务是否需要重试,如果是,则将任务进行重新派发,否则判断下一任务。
所述的任务流控制方法中,所述的任务派发、任务执行、任务执行结果回收和任务监控过程中还包括,在执行下一循环前,判断是否存在停止信号或文件,如果存在,则退出循环,否则开始下一循环。
所述的任务流控制方法中,所述的判断任务是否需要重试或判断超时任务是否需要重试的方法为,将重试计数与重试次数比较,若重试计数小于重试次数,则任务重新派发,更改重试计数,并将任务转至任务派发流程;若重试计数等于重试次数,则任务不再重新派发。
本方法的各循环步骤之间,通过队列来进行联系。
为更好理解本发明内容,下面结合每一步骤中的具体实现方法,给出各个循环步骤的一个具体实施例。
如图2所示,为本发明任务派发的一个实施例流程图。
S201任务派发,判断系统资源是否能够满足派发任务所需要的资源,如果是,则执行S203,否则执行S202;
S202将任务放入待处理队列,等待重新判断;
S203判断延迟执行时间是否大于0,如果是,则执行S204,否则执行S205;
S204将任务状态标识为延迟处理,当达到延迟执行时间后,执行S205;
S205将任务派发到任务队列;
S206判断任务派发是否成功,如果是,则将任务状态标识为已派发,执行S207;否则将任务状态标识为派发失败,转至S202;在实际工作中,对于派发失败的任务,可以重复进行三次派发,如果三次派发均失败,则认为该任务派发失败;
S207判断是否存在停止信号或文件,如果存在,则退出循环,否则转至S201。
任务执行流程主要完成从任务队列中获取任务,并发送任务结果,具体流程如图3所示。
S301任务执行,按照任务优先级从任务队列中获取任务,将任务状态标识为已开始,并记录开始时间;
S302按照任务的执行参数执行任务;
S303判断任务执行是否发生异常,如果是,则执行S304,记录异常信息及任务结束时间,同时将任务状态标识为执行失败;否则执行S305,记录任务执行结果及任务结束时间,同时将任务状态标识为执行成功。
S306将任务执行结果发送到任务结果队列中;
S307判断是否存在停止信号或文件,如果存在,则退出循环,否则返回S301;
任务执行结果回收主要从任务结果队列中获取任务执行结果,并根据具体执行结果来判别是否需要就能醒子任务的二次派发等操作,具体流程如图4所示。
S401任务执行结果回收,从任务结果队列中获取任务执行结果;
S402判断任务执行结果是否成功,如果是,则执行S403,否则执行S404;
S403判断是否存在下一步需要执行的指令,如果是,则派发子任务,否则执行S405;
S404判断任务是否需要重试,如果是,则将任务进行重新派发,并执行S407,否则执行S405;
S405判断该任务是否为复合任务中的子任务,如果是,则执行S406,否则,直接执行S407;
S406根据预定义任务退出条件,计算复合任务结果,执行S407;
S407判断是否存在停止信号或文件,如果存在,则退出循环,否则返回S401;
任务监控主要通过判断待处理队列的任务数量,对进行报警及对超时任务的处理,具体方法流程如图5所示。
S501任务监控,判断待处理队列中的任务数量是否达到预设阈值,如果是,则进行报警处理,并执行S502,否则直接执行S502;
S502获取待处理队列中的任务,判断是否超时,如果是则执行S503,同时将任务状态设置为超时,否则执行S505;
S503判断超时任务是否需要重试,如果是,则执行S504,否则执行S505;
S504将任务进行重新派发;
S505判断是否存在停止信号或文件,如果存在,则退出循环,否则转到S501。
本发明的方法,引入子任务的概念,能够解决现有传统任务控制系统中各任务之间没有关联关系的问题。
本发明还提供了一种任务流控制系统,包括:
预定义任务流控制系统中任务属性,所述任务属性包括任务ID、任务名称、任务类型、 子任务、任务重要性、任务优先级、任务执行超时时间、延迟执行时间、任务执行参数、重试次数、重试计数、任务状态、任务执行结果、任务执行异常信息、任务开始时间和任务结束时间;其中任务类型包括普通任务和复合任务,每个复合任务由至少两个子任务组成;
如图6所示为任务流控制系统结构示意图。
任务派发模块601,循环判断系统资源是否能够派发任务,如果是,则将任务派发到任务队列,否则将任务放入待处理队列,等待重新判断;在执行下一次判断系统资源是否能够派发任务前,判断是否存在停止信号或文件,如果存在,则退出循环,否则开始下一次判断;
任务执行模块602,循环按照任务优先级从任务队列中获取并执行任务,并将任务执行结果发送到任务结果队列中;在获取下一任务前,判断是否存在停止信号或文件,如果存在,则退出循环,否则获取下一任务;
任务执行结果回收模块603,循环从任务结果队列中获取任务执行结果,根据任务执行结果判断任务需要派发子任务或重新派发,并根据任务类型确定复合任务,根据预定义任务退出条件,计算复合任务结果;在获取下一任务执行结果前,判断是否存在停止信号或文件,如果存在,则退出循环,否则获取下一任务执行结果;
任务监控模块604,判断待处理队列中的任务数量是否达到预设阈值,如果是,则进行报警处理,并获取待处理队列中的任务,否则直接获取待处理队列中的任务;判断任务是否超时,如果是,则将任务状态设置为超时,并判断任务是否需要重试,否则判断下一任务;判断超时任务是否需要重试,如果是,则将任务进行重新派发,否则判断下一任务;在执行判断下一任务前,判断是否存在停止信号或文件,如果存在,则退出循环,否则开始下一次判断。
所述的任务流控制系统,其特征在于,所述的预定义任务属性中:
任务重要性包括必须完成或可选完成;
延迟执行时间为延迟派发任务的时间;
任务状态包括延迟处理、已派发、派发失败、已开始、已取消、超时、执行成功和执行失败;
任务执行结果包括当前任务执行成功、失败,或下一步需要执行的指令。
所述的任务流控制系统中,所述的任务派发模块,循环判断系统资源是否能够派发新任务,如果是,则将新任务派发到任务队列包括:根据预定义任务属性生成待执行任务;
判断延迟执行时间,若延迟执行时间大于0,则将任务状态标识为延迟处理,当达到延迟执行时间后,将任务派发到任务队列;否则直接将任务派发到任务队列;
判断任务派发是否成功,如果任务派发成功,则将任务状态标识为已派发,否则将任务状态标识为派发失败,并将任务放入待处理队列。
所述的任务流控制系统中,所述的任务执行模块循环按照任务优先级从任务队列中获取并执行任务,包括:
获取到任务时,将任务状态标识为已开始,并记录开始时间;
按照任务的执行参数执行任务;如果在执行任务过程中发生异常,则记录异常信息及任务结束时间,同时将任务状态标识为执行失败;如果任务执行成功,则记录任务执行结果及任务结束时间,同时将任务状态标识为执行成功。
所述的任务流控制系统中,所述的根据任务执行结果判断任务需要派发子任务或重新派发,并根据任务类型确定复合任务的方法为:
a、判断任务执行结果是否成功,如果是,则执行步骤b,否则执行步骤c;
b、判断是否存在下一步需要执行的指令,如果是,则派发子任务,否则执行步骤d;
c、判断任务是否需要重试,如果是,则将任务进行重新派发,并判断是否退出循环,否则执行步骤d;
d、判断该任务是否为复合任务中的子任务,如果是,则根据预定义任务退出条件,计算复合任务结果,并判断是否退出循环;否则,直接判断是否退出循环。
所述的任务流控制系统中,所述的判断任务是否需要重试或判断超时任务是否需要重试的方法为,将重试计数与重试次数比较,若重试计数小于重试次数,则任务重新派发,更改重试计数,并将任务转至任务派发流程;若重试计数等于重试次数,则任务不再重新派发。
本发明提出的技术方案中,提出了子任务的定义,一个复合型任务的完成可以根据预定义的退出条件,根据子任务的执行结果来进行计算,并且能够完成任务的二次派发,当复合型任务的一个子任务完成后,还可以派发其需要完成的新的子任务,解决了现有传统任务处理系统中都是针对单个任务的控制,各任务之间没有关联关系的问题;并且任务属性和任务退出条件的预定义可以根据各任务的不同要求进行预定义,适应性更强;并且方法的流程和系统模块的划分方式,各功能模块之间通过队列来连接,适用面广,既可以应用于单机模式也可以满足目前分布式任务处理系统的需求。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。

Claims (14)

1.一种任务流控制方法,其特征在于,包括:
预定义任务属性,所述任务属性包括任务ID、任务名称、任务类型、 子任务、任务重要性、任务优先级、任务执行超时时间、延迟执行时间、任务执行参数、重试次数、重试计数、任务状态、任务执行结果、任务执行异常信息、任务开始时间和任务结束时间;其中任务类型包括普通任务和复合任务,每个复合任务由至少两个子任务组成;
任务派发,循环判断系统资源是否能够满足派发任务所需要的资源,如果是,则将任务派发到任务队列,否则将任务放入待处理队列,等待重新判断;
任务执行,循环按照任务优先级,从任务队列中获取并执行任务,并将任务执行结果发送到任务结果队列中;
任务执行结果回收,循环从任务结果队列中获取任务执行结果,根据任务执行结果判断任务需要派发子任务或重新派发,并根据任务类型确定复合任务,根据预定义任务退出条件,计算复合任务结果;
任务监控,循环判断待处理队列中的任务数量是否达到预设 阈值,如果是,则进行报警处理,并获取待处理队列中的任务,否则直接获取待处理队列中的任务;判断获取的任务是否超时,如果是,则将任务状态设置为超时,并判断任务是否需要重试,否则判断下一任务;判断超时任务是否需要重试,如果是,则将任务进行重新派发,否则判断下一任务。
2.如权利要求1所述的任务流控制方法,其特征在于,所述的预定义任务属性中:
任务重要性包括必须完成或可选完成;
延迟执行时间为延迟派发任务的时间;
任务状态包括延迟处理、已派发、派发失败、已开始、已取消、超时、执行成功和执行失败;
任务执行结果包括当前任务执行成功、失败,或下一步需要执行的指令。
3.如权利要求1所述的任务流控制方法,其特征在于,所述的任务派发,循环判断系统资源是否能够派发新任务,如果是,则将新任务派发到任务队列包括:根据预定义任务属性生成待执行任务;
判断延迟执行时间,若延迟执行时间大于0,则将任务状态标识为延迟处理,当达到延迟执行时间后,将任务派发到任务队列;否则直接将任务派发到任务队列;
判断任务派发是否成功,如果任务派发成功,则将任务状态标识为已派发,否则将任务状态标识为派发失败,并将任务放入待处理队列。
4.如权利要求1所述的任务流控制方法,其特征在于,循环按照任务优先级从任务队列中获取并执行任务,包括:
获取到任务时,将任务状态标识为已开始,并记录开始时间;
按照任务的执行参数执行任务;如果在执行任务过程中发生异常,则记录异常信息及任务结束时间,同时将任务状态标识为执行失败;如果任务执行成功,则记录任务执行结果及任务结束时间,同时将任务状态标识为执行成功。
5.如权利要求1所述的任务流控制方法,其特征在于,所述的根据任务执行结果判断任务需要派发子任务或重新派发,并根据任务类型确定复合任务的方法为:
a、判断任务执行结果是否成功,如果是,则执行步骤b,否则执行步骤c;
b、判断是否存在下一步需要执行的指令,如果是,则派发子任务,否则执行步骤d;
c、判断任务是否需要重试,如果是,则将任务进行重新派发,并进行下一任务执行结果判断,否则执行步骤d;
d、判断该任务是否为复合任务中的子任务,如果是,则根据预定义任务退出条件,计算复合任务结果,并进行下一任务执行结果判断;否则,直接进行下一任务执行结果判断。
6.如权利要求1或5所述的任务流控制方法,其特征在于,所述的任务派发、任务执行、任务执行结果回收或任务监控的分别每一个循环过程中还包括,在执行下一循环前,判断是否存在停止信号或文件,如果存在,则退出循环,否则开始下一循环。
7.如权利要求1或5所述的任务流控制方法,其特征在于,所述的判断任务是否需要重试或判断超时任务是否需要重试的方法为,将重试计数与重试次数比较,若重试计数小于重试次数,则任务重新派发,更改重试计数,并将任务转至任务派发流程;若重试计数等于重试次数,则任务不再重新派发。
8.一种任务流控制系统,其特征在于,包括:
属性定义模块,预定义任务流控制系统中任务属性,所述任务属性包括任务ID、任务名称、任务类型、 子任务、任务重要性、任务优先级、任务执行超时时间、延迟执行时间、任务执行参数、重试次数、重试计数、任务状态、任务执行结果、任务执行异常信息、任务开始时间和任务结束时间;其中任务类型包括普通任务和复合任务,每个复合任务由至少两个子任务组成;
任务派发模块,循环判断系统资源是否能够满足派发任务所需要的资源,如果是,则将任务派发到任务队列,否则将任务放入待处理队列,等待重新判断;
任务执行模块,循环按照任务优先级,从任务队列中获取并执行任务,并将任务执行结果发送到任务结果队列中;
任务执行结果回收模块,循环从任务结果队列中获取任务执行结果,根据任务执行结果判断任务需要派发子任务或重新派发,并根据任务类型确定复合任务,根据预定义任务退出条件,计算复合任务结果;
任务监控模块,循环判断待处理队列中的任务数量是否达到预设 阈值,如果是,则进行报警处理,并获取待处理队列中的任务,否则直接获取待处理队列中的任务;判断获取的任务是否超时,如果是,则将任务状态设置为超时,并判断任务是否需要重试,否则判断下一任务;判断超时任务是否需要重试,如果是,则将任务进行重新派发,否则判断下一任务。
9.如权利要求8所述的任务流控制系统,其特征在于,所述的预定义任务属性中:
任务重要性包括必须完成或可选完成;
延迟执行时间为延迟派发任务的时间;
任务状态包括延迟处理、已派发、派发失败、已开始、已取消、超时、执行成功和执行失败;
任务执行结果包括当前任务执行成功、失败,或下一步需要执行的指令。
10.如权利要求8所述的任务流控制系统,其特征在于,所述的任务派发模块,循环判断系统资源是否能够派发新任务,如果是,则将新任务派发到任务队列包括:根据预定义任务属性生成待执行任务;
判断延迟执行时间,若延迟执行时间大于0,则将任务状态标识为延迟处理,当达到延迟执行时间后,将任务派发到任务队列;否则直接将任务派发到任务队列;
判断任务派发是否成功,如果任务派发成功,则将任务状态标识为已派发,否则将任务状态标识为派发失败,并将任务放入待处理队列。
11.如权利要求8所述的任务流控制系统,其特征在于,任务执行模块循环按照任务优先级从任务队列中获取并执行任务,包括:
获取到任务时,将任务状态标识为已开始,并记录开始时间;
按照任务的执行参数执行任务;如果在执行任务过程中发生异常,则记录异常信息及任务结束时间,同时将任务状态标识为执行失败;如果任务执行成功,则记录任务执行结果及任务结束时间,同时将任务状态标识为执行成功。
12.如权利要求8所述的任务流控制系统,其特征在于,所述的任务执行结果回收模块根据任务执行结果判断任务需要派发子任务或重新派发,并根据任务类型确定复合任务包括:
结果判断子模块,判断任务执行结果是否成功,如果是,则将任务执行结果发送到指令判断子模块,否则将任务执行结果发送到指令判断子模块;
指令判断子模块,判断是否存在下一步需要执行的指令,如果是,则派发子任务,否则将任务执行结果发送到复合任务判断子模块;
重试判断子模块,判断任务是否需要重试,如果是,则将任务进行重新派发,并判断是否退出循环,否则将任务执行结果发送到复合任务判断子模块;
复合任务判断子模块,判断该任务是否为复合任务中的子任务,如果是,则根据预定义任务退出条件,计算复合任务结果,并判断是否退出循环;否则,直接判断是否退出循环。
13.如权利要求8或12所述的任务流控制系统,其特征在于,所述的任务派发、任务执行、任务执行结果回收或任务监控的分别每一个循环过程中还包括,在执行下一循环前,判断是否存在停止信号或文件,如果存在,则退出循环,否则开始下一循环。
14.如权利要求8或12所述的任务流控制系统,其特征在于,所述的判断任务是否需要重试或判断超时任务是否需要重试包括,将重试计数与重试次数比较,若重试计数小于重试次数,则任务重新派发,更改重试计数,并将任务转至任务派发流程;若重试计数等于重试次数,则任务不再重新派发。
CN201210421753.0A 2012-10-30 2012-10-30 任务流控制方法及系统 Active CN103294533B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210421753.0A CN103294533B (zh) 2012-10-30 2012-10-30 任务流控制方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210421753.0A CN103294533B (zh) 2012-10-30 2012-10-30 任务流控制方法及系统

Publications (2)

Publication Number Publication Date
CN103294533A CN103294533A (zh) 2013-09-11
CN103294533B true CN103294533B (zh) 2016-09-07

Family

ID=49095466

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210421753.0A Active CN103294533B (zh) 2012-10-30 2012-10-30 任务流控制方法及系统

Country Status (1)

Country Link
CN (1) CN103294533B (zh)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156262A (zh) * 2014-08-08 2014-11-19 浙江工商大学 一种基于Petri网MIP法的并发程序死锁检测方法
CN104318381A (zh) * 2014-10-21 2015-01-28 中国建设银行股份有限公司 一种后台审核任务分发方法和装置
CN104407957B (zh) * 2014-10-29 2018-04-27 中国建设银行股份有限公司 一种系统健康检测方法及装置
CN105630588B (zh) * 2014-11-06 2019-03-01 卓望数码技术(深圳)有限公司 一种分布式作业调度方法和系统
CN104598320B (zh) * 2015-01-30 2018-11-30 北京正奇联讯科技有限公司 基于分布式系统的任务执行方法及系统
WO2016138616A1 (en) * 2015-03-02 2016-09-09 Microsoft Technology Licensing, Llc Data query job submission management
CN104750549A (zh) * 2015-04-13 2015-07-01 飞狐信息技术(天津)有限公司 计算任务处理装置、方法及系统
CN104915258B (zh) * 2015-06-09 2019-07-02 北京京东尚科信息技术有限公司 分布式任务调度的方法和装置
CN106708481B (zh) * 2015-07-30 2021-06-29 北京京东尚科信息技术有限公司 一种控制任务执行的方法
CN106528275A (zh) * 2015-09-10 2017-03-22 网易(杭州)网络有限公司 数据任务的处理方法及任务调度器
CN106681701B (zh) * 2015-11-09 2020-04-14 华为技术有限公司 一种任务的显示方法和装置
US11004170B2 (en) * 2015-11-17 2021-05-11 Google Llc Converting flash content to HTML content by generating an instruction list
CN105608531A (zh) * 2015-12-18 2016-05-25 北京奇虎科技有限公司 一种任务调度的方法及装置
CN107967189A (zh) * 2016-10-20 2018-04-27 南京途牛科技有限公司 异常任务重试方法及装置
CN108021430B (zh) * 2016-10-31 2021-11-05 杭州海康威视数字技术股份有限公司 一种分布式任务处理方法及装置
CN106773805A (zh) * 2016-11-15 2017-05-31 努比亚技术有限公司 任务消息处理系统及方法
CN108173892B (zh) * 2016-12-07 2020-11-13 腾讯科技(深圳)有限公司 云端镜像操作方法和装置
CN108615136B (zh) * 2016-12-13 2022-04-19 中国地质调查局发展研究中心 任务流程控制方法及系统
CN107067187A (zh) * 2017-05-09 2017-08-18 北京凤凰理理它信息技术有限公司 电话任务管理方法、存储设备、存储介质和装置
CN109308214A (zh) * 2017-07-27 2019-02-05 北京京东尚科信息技术有限公司 数据任务处理方法和系统
CN109428912B (zh) 2017-08-24 2020-07-10 阿里巴巴集团控股有限公司 一种分布式系统资源分配方法、装置及系统
KR102527925B1 (ko) * 2017-11-29 2023-05-03 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN108881150B (zh) * 2017-12-29 2021-03-23 北京安天网络安全技术有限公司 一种检测任务的处理方法、装置、电子设备及存储介质
CN108897854B (zh) * 2018-06-29 2020-06-05 京东数字科技控股有限公司 一种超时任务的监控方法和装置
CN110895488B (zh) * 2018-09-12 2023-10-20 三六零科技集团有限公司 任务调度方法及装置
CN111026515B (zh) * 2018-10-10 2023-07-14 上海寒武纪信息科技有限公司 状态监控装置、任务调度器及状态监控方法
CN111176856A (zh) * 2018-11-09 2020-05-19 商派软件有限公司 一种智能控制消费脚本通道的方法
CN109656740A (zh) * 2018-12-11 2019-04-19 国云科技股份有限公司 一种支持超时处理任务流的方法
CN110231812B (zh) * 2019-06-19 2021-06-08 深圳市简工智能科技有限公司 工业物联网联动、执行方法、装置、智能设备及系统
CN110705890A (zh) * 2019-10-10 2020-01-17 达飞云贷科技(北京)有限公司 业务流程的驱动方法、装置、服务器和存储介质
CN110825535B (zh) * 2019-10-12 2022-06-28 中国建设银行股份有限公司 一种作业调度的方法和系统
CN112422691B (zh) * 2020-11-20 2023-08-11 深圳万兴软件有限公司 Mdm控制优化方法、装置、计算机设备及存储介质
CN113094177A (zh) * 2021-04-21 2021-07-09 上海商汤科技开发有限公司 一种任务分发系统、方法、装置、计算机设备及存储介质
CN113254175A (zh) * 2021-05-27 2021-08-13 航天宏图信息技术股份有限公司 一种算法调度方法、数据处理流程驱动方法及装置
CN113721498B (zh) * 2021-07-15 2022-12-30 青岛英泰信息技术有限公司 一种基于FreeRTOS的指令交互控制系统及其方法
CN114237860A (zh) * 2022-02-28 2022-03-25 广东睿江云计算股份有限公司 一种自动化任务流调度方法以及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521043A (zh) * 2011-12-27 2012-06-27 广州从兴电子开发有限公司 一种任务处理方法及应用系统
CN102708502A (zh) * 2012-04-11 2012-10-03 佳都新太科技股份有限公司 一个基于xpdl的多步骤营销流程的框架协议

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7236939B2 (en) * 2001-03-31 2007-06-26 Hewlett-Packard Development Company, L.P. Peer-to-peer inter-enterprise collaborative process management method and system
US20080250418A1 (en) * 2007-02-08 2008-10-09 Karamchedu Murali M Health care administration system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521043A (zh) * 2011-12-27 2012-06-27 广州从兴电子开发有限公司 一种任务处理方法及应用系统
CN102708502A (zh) * 2012-04-11 2012-10-03 佳都新太科技股份有限公司 一个基于xpdl的多步骤营销流程的框架协议

Also Published As

Publication number Publication date
CN103294533A (zh) 2013-09-11

Similar Documents

Publication Publication Date Title
CN103294533B (zh) 任务流控制方法及系统
US8533334B2 (en) Message binding processing technique
CN107291547B (zh) 一种任务调度处理方法、装置及系统
EP3675434B1 (en) Distributed system resource allocation method, device and system
CN110806933B (zh) 一种批量任务处理方法、装置、设备和存储介质
CN110427252B (zh) 基于任务依赖关系的任务调度方法、装置及存储介质
CN109117260A (zh) 一种任务调度方法、装置、设备和介质
CN102902589B (zh) 一种集群mic作业的管理及调度方法
US20150143380A1 (en) Scheduling workloads and making provision decisions of computer resources in a computing environment
US20210248469A1 (en) Method and apparatus for scheduling deep learning reasoning engines, device, and medium
CN111338791A (zh) 集群队列资源的调度方法、装置、设备及存储介质
CN109033814B (zh) 智能合约触发方法、装置、设备及存储介质
WO2020185396A1 (en) Capacity management in a cloud computing system using virtual machine series modeling
US20180107396A1 (en) Tracking ownership of memory in a data processing system through use of a memory monitor
CN103823719A (zh) 针对可执行程序的分布式云计算系统及针对可执行程序的分布式云计算方法
CN103293967A (zh) 一种用于智能抄表终端的多任务控制方法
CN113658351B (zh) 一种产品生产的方法、装置、电子设备及存储介质
CN103631695A (zh) 时间监测方法及装置
CN108415765B (zh) 任务调度方法、装置及智能终端
CN110033242B (zh) 工作时间确定方法、装置、设备和介质
CN103631594A (zh) 通用流程异步调度方法及系统
CN116302423A (zh) 一种面向云管理平台的分布式任务调度方法及系统
CN116089040A (zh) 业务流程的调度方法及其装置、电子设备及存储介质
CN102737198A (zh) 对象保护方法及装置
CN108399096A (zh) 一种电池管理系统多任务调度时序监控方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Guan Jinzhong

Inventor after: Wang Wei

Inventor after: Li Shicong

Inventor before: Guan Jinzhong

Inventor before: Wang Wei

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: 100080 Beijing city Haidian District minzhuang Road No. 3, Tsinghua Science Park Building 1 Yuquan Huigu a

Patentee after: Beijing ahtech network Safe Technology Ltd

Address before: 100080 Haidian District City, Zhongguancun, the main street, No. 1 Hailong building, room 1415, room 14

Patentee before: Beijing Antiy Electronic Installation Co., Ltd.

CP03 Change of name, title or address
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Task flow control method and task flow control system

Effective date of registration: 20181119

Granted publication date: 20160907

Pledgee: Shanghai Pudong Development Bank Limited by Share Ltd Harbin branch

Pledgor: Beijing ahtech network Safe Technology Ltd

Registration number: 2018990001084

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20200508

Granted publication date: 20160907

Pledgee: Shanghai Pudong Development Bank Limited by Share Ltd Harbin branch

Pledgor: BEIJING ANTIY NETWORK TECHNOLOGY Co.,Ltd.

Registration number: 2018990001084

PC01 Cancellation of the registration of the contract for pledge of patent right