CN115292013A - 一种任务调度执行方法及装置 - Google Patents

一种任务调度执行方法及装置 Download PDF

Info

Publication number
CN115292013A
CN115292013A CN202210922653.XA CN202210922653A CN115292013A CN 115292013 A CN115292013 A CN 115292013A CN 202210922653 A CN202210922653 A CN 202210922653A CN 115292013 A CN115292013 A CN 115292013A
Authority
CN
China
Prior art keywords
task
execution
tasks
state
executed
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.)
Pending
Application number
CN202210922653.XA
Other languages
English (en)
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.)
Boc Financial Technology Co ltd
Original Assignee
Boc Financial 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 Boc Financial Technology Co ltd filed Critical Boc Financial Technology Co ltd
Priority to CN202210922653.XA priority Critical patent/CN115292013A/zh
Publication of CN115292013A publication Critical patent/CN115292013A/zh
Pending legal-status Critical Current

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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

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

Abstract

本发明提供了一种任务调度执行方法及装置,可应用于金融领域或其他领域,通过预先配置的任务调度模型实现任务的规范化定义和有序稳定调度,利用任务表统一记录所有任务的任务状态以及属性信息,基于任务调度模型与任务表记录的所有任务的任务状态以及属性信息,实现对不同任务状态、启用值、优先级、任务类型以及执行期限的任务的有序稳定调度,有效提高了任务调度效率。另外若需要调整任务定义或调度规则只需要配置任务调度模型即可,灵活性高且开发难度低。

Description

一种任务调度执行方法及装置
技术领域
本发明涉及计算机技术领域,更具体的,涉及一种任务调度执行方法及装置。
背景技术
在业务系统中,存在各种各样的任务需要统一调度执行,传统的任务调度逻辑比较单一,一般根据任务的先来后到执行或按特定优先级执行,这在任务量不大的情况下影响还不明显,但是在任务量大情况下,任务执行效率低下,可能导致有些任务只需要很短的时间就能完成,但却可能排队在很多需要长时间运行的任务之后,导致该任务需要等待很长时间。
目前,任务调度规则写入代码程序中,若要增加或调整任务调度规则,需要针对性的开发,开发难度大,灵活性较低。
发明内容
有鉴于此,本发明提供了一种任务调度执行方法及装置,有效提高了任务调度效率,灵活性高且开发难度低。
为了实现上述发明目的,本发明提供的具体技术方案如下:
第一方面,本发明实施例提供了一种任务调度执行方法,包括:
在接收到任务的情况下,获取该任务的属性信息,任务的属性包括:启用值、优先级、任务类型以及执行期限;
将该任务的属性信息写入任务表,并将该任务在所述任务表中的任务状态设置为初始;
扫描所述任务表,在任务状态为初始的任务中基于预先配置的任务调度模型以及任务的属性,确定待执行任务;
为所述待执行任务生成任务序号,将所述待执行任务放入任务队列,并将所述待执行任务在所述任务表中的任务状态设置为运行中;
从所述任务队列中读取任务并执行,若执行成功,将该任务在所述任务表中的任务状态设置为成功,若执行异常,将该任务在所述任务表中的任务状态设置为异常。
在一些实施例中,所述在任务状态为初始的任务中基于预先配置的任务调度模型以及任务的属性,确定待执行任务,包括:
在任务状态为初始状态的任务中选择启用值为可启用的任务;
在选择出的启用值为可启用的任务中选择优先级最高的任务;
在选择出的优先级最高的任务中选择任务类型耗时最短的任务;
在选择出的任务类型耗时最短的任务中选择执行期限最短的任务作为所述待执行任务。
在一些实施例中,在任务执行成功,将该任务在所述任务表中的任务状态设置为成功之后,所述方法还包括:
判断该任务是否为具有依赖关系的多个串行执行任务中的一个任务;
若该任务为具有依赖关系的多个串行执行任务中的一个任务时,判断该任务是否为具有依赖关系的多个串行执行任务中的最后一个任务;
若该任务不是具有依赖关系的多个串行执行任务中的最后一个任务,将其中该任务后的任务在所述任务表中的启用值设置为可启用,其中,具有依赖关系的多个串行执行任务在初始状态下第一个任务的启用值为可启用,其他任务的启用值为不可启用。
在一些实施例中,在任务执行异常,将该任务在所述任务表中的任务状态设置为异常之后,所述方法还包括:
扫描所述任务表中该任务的异常重试次数是否达到阈值;
若达到阈值,发出任务执行异常提示信息;
若未达到阈值,则将该任务在所述任务表中的任务状态设置为初始,根据该任务的实际执行时长更新所述任务表中该任务的执行期限,并将异常重试次数加1。
第二方面,本发明实施例提供了一种任务调度执行装置,包括:
任务接收单元,用于在接收到任务的情况下,获取该任务的属性信息,任务的属性包括:启用值、优先级、任务类型以及执行期限;
任务表更新单元,用于将该任务的属性信息写入任务表,并将该任务在所述任务表中的任务状态设置为初始;
任务表扫描单元,用于扫描所述任务表,在任务状态为初始的任务中基于预先配置的任务调度模型以及任务的属性,确定待执行任务;
序号生成单元,用于为所述待执行任务生成任务序号,将所述待执行任务放入任务队列,并将所述待执行任务在所述任务表中的任务状态设置为运行中;
任务执行单元,用于从所述任务队列中读取任务并执行,若执行成功,将该任务在所述任务表中的任务状态设置为成功,若执行异常,将该任务在所述任务表中的任务状态设置为异常。
在一些实施例中,所述任务表扫描单元,具体用于:
在任务状态为初始状态的任务中选择启用值为可启用的任务;
在选择出的启用值为可启用的任务中选择优先级最高的任务;
在选择出的优先级最高的任务中选择任务类型耗时最短的任务;
在选择出的任务类型耗时最短的任务中选择执行期限最短的任务作为所述待执行任务。
在一些实施例中,所述装置还包括启用值更新单元,用于:
在任务执行成功,将该任务在所述任务表中的任务状态设置为成功之后,判断该任务是否为具有依赖关系的多个串行执行任务中的一个任务;
若该任务为具有依赖关系的多个串行执行任务中的一个任务时,判断该任务是否为具有依赖关系的多个串行执行任务中的最后一个任务;
若该任务不是具有依赖关系的多个串行执行任务中的最后一个任务,将其中该任务后的任务在所述任务表中的启用值设置为可启用,其中,具有依赖关系的多个串行执行任务在初始状态下第一个任务的启用值为可启用,其他任务的启用值为不可启用。
在一些实施例中,所述装置还包括异常处理单元,用于:
在任务执行异常,将该任务在所述任务表中的任务状态设置为异常之后,扫描所述任务表中该任务的异常重试次数是否达到阈值;
若达到阈值,发出任务执行异常提示信息;
若未达到阈值,则将该任务在所述任务表中的任务状态设置为初始,根据该任务的实际执行时长更新所述任务表中该任务的执行期限,并将异常重试次数加1。
第三方面,本发明实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如第一方面任一实现方式描述的任务调度执行方法。
第四方面,本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时实现如第一方面任一实现方式描述的任务调度执行方法。
相对于现有技术,本发明的有益效果如下:
本发明公开的一种任务调度执行方法及装置,通过预先配置的任务调度模型实现任务的规范化定义和有序稳定调度,利用任务表统一记录所有任务的任务状态以及属性信息,基于任务调度模型与任务表记录的所有任务的任务状态以及属性信息,实现对不同任务状态、启用值、优先级、任务类型以及执行期限的任务的有序稳定调度,有效提高了任务调度效率。另外若需要调整任务定义或调度规则只需要配置任务调度模型即可,灵活性高且开发难度低。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种任务调度执行方法的流程示意图;
图2为本发明实施例公开的一种任务表示意图;
图3为本发明实施例公开的一种任务调度执行方法的部分方法流程示意图;
图4为本发明实施例公开的另一种任务调度执行方法的流程示意图;
图5为本发明实施例公开的另一种任务调度执行方法的流程示意图;
图6为本发明实施例公开的一种任务调度执行装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
发明人经过研究发现:一般的软件系统的任务一般为实时处理类的,即时请求、即时返回,但也有一些准实时处理的场景,而且需要异步的处理多项任务,不同的任务之间也会有先后依赖,串行执行,例如接收转账交易请求任务后,还需要进行查询流水、返回交易记录、发送短信通知等任务,这要求系统要能够很好地协调任务的串行执行,因为我们要面对以下问题:
1、不同任务的触发条件不同,如何触发系统执行任务要有规范,需要针对性的开发;
2、不同任务的串行执行、多个任务的执行,需要一定的机制协调进行,需要有针对性的开发;
3、不同任务之间的数据传递,需要有一定的标准,需要有针对性的开发;
4、任务执行出现异常时,需要回退并下次恢复重新执行,需要有针对性的开发。
以上因素导致若要增加或调整任务调度规则,需要进行针对性的开发,开发难度大,灵活性较低。
为了解决上述技术问题,本发明实施例公开了一种任务调度执行方法,通过预先配置的任务调度模型实现任务的规范化定义和有序稳定调度,另外若需要调整任务定义或调度规则只需要配置任务调度模型即可,灵活性高且开发难度低。
具体的,请参阅图1,本实施例公开的一种任务调度执行方法包括以下步骤:
S101:在接收到任务的情况下,获取该任务的属性信息,任务的属性包括:启用值、优先级、任务类型以及执行期限;
任务可以为其他业务系统发送的待执行任务,也可以为自业务系统生成的。
其中:
启用值,表示任务是否可启用,大部分任务初始为可启用,对于串行的多个任务,第一个任务可启用,其他任务为不可启用,待上一个任务执行完成后,才是可启用状态。
优先级,可以包括紧急、较紧急、一般,以枚举的方式标识优先级,优先级越高,值越高。
任务类型,可以包括运算类、数据处理类、查询数据库类、文件处理类、网络请求类,枚举的方式标识任务类型,任务类型耗时越长,值越高。
执行期限,用于定义任务执行所需大概的时间。
S102:将该任务的属性信息写入任务表,并将该任务在任务表中的任务状态设置为初始;
任务表的一种可选实现方式如图2所示,任务标识唯一表示一个任务,任务的属性信息被写入任务表之后,该任务的任务状态被设置为初始。其中,执行期限为毫秒级,仅为举例。
S103:扫描任务表,在任务状态为初始的任务中基于预先配置的任务调度模型以及任务的属性,确定待执行任务;
每有新任务写入任务表,即可触发扫描任务表,也可以定时扫描任务表,本发明不做具体限定。
任务状态为初始的任务为需要执行的任务,也就是说扫描任务表,基于预先配置的任务调度模型以及任务的属性,从任务状态为初始的需要执行的任务中确定当前待执行任务。
任务调度模型定义了任务调度规则、执行前后处理方法、异常处理方法、执行初始值、执行结果值、下一项任务标识、状态机制、优先级机制、任务类型、执行期限以及启用值等。
其中,任务调度规则,定义了任务处理逻辑。
执行前后处理方法,定义了任务执行前后的处理逻辑,如任务的属性信息写入任务表中后,任务在任务表中的任务状态被设置为初始,任务执行成功,任务在任务表中的任务状态被设置为成功,任务执行失败,任务在任务表中的任务状态被设置为异常。
异常处理方法,定义了任务异常处理逻辑,如异常任务是否需要重试、回退等。
执行初始值,定义了任务执行需要的参数。
执行结果值,定义了任务执行的结果值。
下一项任务标识,定义了如果任务是下一项任务的依赖,则链式执行。
状态机制,定义了任务状态的类型,如任务状态可以包括初始、运行中、异常、成功。
优先级机制,定义了任务的优先级类型,如可以包括紧急、较紧急、一般,以枚举的方式标识优先级,优先级越高,值越高。
任务类型,定义了任务类型,如任务类型可以包括运算类、数据处理类、查询数据库类、文件处理类、网络请求类,枚举的方式标识任务类型,任务类型耗时越长,值越高。
执行期限,定义了任务执行所需大概的时间,当任务执行异常后,会根据该任务的实际执行时长更新任务表中该任务的执行期限。
启用值,定义了任务是否可启用,大部分任务初始为可启用,对于串行的多个任务,第一个任务可启用,其他任务为不可启用,待上一个任务执行完成后,才是可启用状态。
请参阅图3,本实施例提供了一种S103可选的实现方式,包括:
S201:在任务状态为初始状态的任务中选择启用值为可启用的任务;
S202:在选择出的启用值为可启用的任务中选择优先级最高的任务;
S203:在选择出的优先级最高的任务中选择任务类型耗时最短的任务;
S204:在选择出的任务类型耗时最短的任务中选择执行期限最短的任务作为待执行任务。
以任务类型包括运算类、数据处理类、查询数据库类、文件处理类、网络请求类为例,这些类型的任务的耗时依次递减。
可以理解的是,同一种任务类型的任务的执行期限可能不同,任务的执行期限为发起任务时生成的,通过以上任务调度规则,保证将任务状态为初始状态且启用值为可启用的任务中,优先级最高、耗时最短的任务优先执行。
S104:为待执行任务生成任务序号,将待执行任务放入任务队列,并将待执行任务在任务表中的任务状态设置为运行中;
具体的,由序号生成器为待执行任务生成任务序号。
任务队列为先进先出队列,因此,待执行任务放入任务队列的顺序即为待执行任务的执行顺序。
S105:从任务队列中读取任务并执行,若执行成功,将该任务在任务表中的任务状态设置为成功,若执行异常,将该任务在任务表中的任务状态设置为异常。
可见,本实施例公开的一种任务调度执行方法,通过预先配置的任务调度模型实现任务的规范化定义和有序稳定调度,利用任务表统一记录所有任务的任务状态以及属性信息,基于任务调度模型与任务表记录的所有任务的任务状态以及属性信息,实现对不同任务状态、启用值、优先级、任务类型以及执行期限的任务的有序稳定调度,有效提高了任务调度效率。另外若需要调整任务定义或调度规则只需要配置任务调度模型即可,灵活性高且开发难度低。
进一步,为了保证具有依赖关系的多个任务按照依赖关系串行执行,具体的,请参阅图4,本实施例公开的另一种任务调度执行方法包括以下步骤:
S301:在接收到任务的情况下,获取该任务的属性信息,任务的属性包括:启用值、优先级、任务类型以及执行期限;
S302:将该任务的属性信息写入任务表,并将该任务在任务表中的任务状态设置为初始;
S303:扫描任务表,在任务状态为初始的任务中基于预先配置的任务调度模型以及任务的属性,确定待执行任务;
S304:为待执行任务生成任务序号,将待执行任务放入任务队列,并将待执行任务在任务表中的任务状态设置为运行中;
S305:从任务队列中读取任务并执行,若执行成功,将该任务在任务表中的任务状态设置为成功;
S306:判断该任务是否为具有依赖关系的多个串行执行任务中的一个任务;
具体的,根据下一项任务标识判定该任务是否为具有依赖关系的多个串行执行任务中的一个任务。
若该任务不是具有依赖关系的多个串行执行任务中的一个任务,执行S303。
若该任务为具有依赖关系的多个串行执行任务中的一个任务时,执行S307:判断该任务是否为具有依赖关系的多个串行执行任务中的最后一个任务;
若该任务是具有依赖关系的多个串行执行任务中的最后一个任务,执行S303。
若该任务不是具有依赖关系的多个串行执行任务中的最后一个任务,执行S308:将其中该任务后的任务在任务表中的启用值设置为可启用。
其中,具有依赖关系的多个串行执行任务在初始状态下第一个任务的启用值为可启用,其他任务的启用值为不可启用。
进一步,本实施例还公开了一种针对任务异常处理的任务调度执行方法,请参阅图5,该方法包括以下步骤:
S401:在接收到任务的情况下,获取该任务的属性信息,任务的属性包括:启用值、优先级、任务类型以及执行期限;
S402:将该任务的属性信息写入任务表,并将该任务在任务表中的任务状态设置为初始;
S403:扫描任务表,在任务状态为初始的任务中基于预先配置的任务调度模型以及任务的属性,确定待执行任务;
S404:为待执行任务生成任务序号,将待执行任务放入任务队列,并将待执行任务在任务表中的任务状态设置为运行中;
S405:从任务队列中读取任务并执行,若执行异常,将该任务在任务表中的任务状态设置为异常;
S406:扫描所述任务表中该任务的异常重试次数是否达到阈值;
若达到阈值,S407:发出任务执行异常提示信息;
若未达到阈值,S408:将该任务在任务表中的任务状态设置为初始,根据该任务的实际执行时长更新任务表中该任务的执行期限,并将异常重试次数加1。
通过在任务执行异常且该任务的异常重试次数未达到阈值的情况下,根据该任务的实际执行时长更新任务表中该任务的执行期限,使任务表中该任务的执行期限更加准确,便于后续根据该任务的执行期限进行任务调度。
通过以上任务调度执行方法,保证任务异常时可以重试,提高任务执行的稳定性,同时避免重试次数过多导致的资源浪费。
基于上述实施例公开的一种任务调度执行方法,本实施例对应公开了一种任务调度执行装置,请参阅图6,该装置包括:
任务接收单元601,用于在接收到任务的情况下,获取该任务的属性信息,任务的属性包括:启用值、优先级、任务类型以及执行期限;
任务表更新单元602,用于将该任务的属性信息写入任务表,并将该任务在所述任务表中的任务状态设置为初始;
任务表扫描单元603,用于扫描所述任务表,在任务状态为初始的任务中基于预先配置的任务调度模型以及任务的属性,确定待执行任务;
序号生成单元604,用于为所述待执行任务生成任务序号,将所述待执行任务放入任务队列,并将所述待执行任务在所述任务表中的任务状态设置为运行中;
任务执行单元605,用于从所述任务队列中读取任务并执行,若执行成功,将该任务在所述任务表中的任务状态设置为成功,若执行异常,将该任务在所述任务表中的任务状态设置为异常。
在一些实施例中,所述任务表扫描单元603,具体用于:
在任务状态为初始状态的任务中选择启用值为可启用的任务;
在选择出的启用值为可启用的任务中选择优先级最高的任务;
在选择出的优先级最高的任务中选择任务类型耗时最短的任务;
在选择出的任务类型耗时最短的任务中选择执行期限最短的任务作为所述待执行任务。
在一些实施例中,所述装置还包括启用值更新单元,用于:
在任务执行成功,将该任务在所述任务表中的任务状态设置为成功之后,判断该任务是否为具有依赖关系的多个串行执行任务中的一个任务;
若该任务为具有依赖关系的多个串行执行任务中的一个任务时,判断该任务是否为具有依赖关系的多个串行执行任务中的最后一个任务;
若该任务不是具有依赖关系的多个串行执行任务中的最后一个任务,将其中该任务后的任务在所述任务表中的启用值设置为可启用,其中,具有依赖关系的多个串行执行任务在初始状态下第一个任务的启用值为可启用,其他任务的启用值为不可启用。
在一些实施例中,所述装置还包括异常处理单元,用于:
在任务执行异常,将该任务在所述任务表中的任务状态设置为异常之后,扫描所述任务表中该任务的异常重试次数是否达到阈值;
若达到阈值,发出任务执行异常提示信息;
若未达到阈值,则将该任务在所述任务表中的任务状态设置为初始,根据该任务的实际执行时长更新所述任务表中该任务的执行期限,并将异常重试次数加1。
本实施例公开的一种任务调度执行装置,通过预先配置的任务调度模型实现任务的规范化定义和有序稳定调度,利用任务表统一记录所有任务的任务状态以及属性信息,基于任务调度模型与任务表记录的所有任务的任务状态以及属性信息,实现对不同任务状态、启用值、优先级、任务类型以及执行期限的任务的有序稳定调度,有效提高了任务调度效率。另外若需要调整任务定义或调度规则只需要配置任务调度模型即可,灵活性高且开发难度低。
本发明实施例还提供了一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如下任务调度执行方法:
在接收到任务的情况下,获取该任务的属性信息,任务的属性包括:启用值、优先级、任务类型以及执行期限;
将该任务的属性信息写入任务表,并将该任务在所述任务表中的任务状态设置为初始;
扫描所述任务表,在任务状态为初始的任务中基于预先配置的任务调度模型以及任务的属性,确定待执行任务;
为所述待执行任务生成任务序号,将所述待执行任务放入任务队列,并将所述待执行任务在所述任务表中的任务状态设置为运行中;
从所述任务队列中读取任务并执行,若执行成功,将该任务在所述任务表中的任务状态设置为成功,若执行异常,将该任务在所述任务表中的任务状态设置为异常。
进一步,所述在任务状态为初始的任务中基于预先配置的任务调度模型以及任务的属性,确定待执行任务,包括:
在任务状态为初始状态的任务中选择启用值为可启用的任务;
在选择出的启用值为可启用的任务中选择优先级最高的任务;
在选择出的优先级最高的任务中选择任务类型耗时最短的任务;
在选择出的任务类型耗时最短的任务中选择执行期限最短的任务作为所述待执行任务。
进一步,在任务执行成功,将该任务在所述任务表中的任务状态设置为成功之后,所述方法还包括:
判断该任务是否为具有依赖关系的多个串行执行任务中的一个任务;
若该任务为具有依赖关系的多个串行执行任务中的一个任务时,判断该任务是否为具有依赖关系的多个串行执行任务中的最后一个任务;
若该任务不是具有依赖关系的多个串行执行任务中的最后一个任务,将其中该任务后的任务在所述任务表中的启用值设置为可启用,其中,具有依赖关系的多个串行执行任务在初始状态下第一个任务的启用值为可启用,其他任务的启用值为不可启用。
进一步,在任务执行异常,将该任务在所述任务表中的任务状态设置为异常之后,所述方法还包括:
扫描所述任务表中该任务的异常重试次数是否达到阈值;
若达到阈值,发出任务执行异常提示信息;
若未达到阈值,则将该任务在所述任务表中的任务状态设置为初始,根据该任务的实际执行时长更新所述任务表中该任务的执行期限,并将异常重试次数加1。
本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时实现如下任务调度执行方法
在接收到任务的情况下,获取该任务的属性信息,任务的属性包括:启用值、优先级、任务类型以及执行期限;
将该任务的属性信息写入任务表,并将该任务在所述任务表中的任务状态设置为初始;
扫描所述任务表,在任务状态为初始的任务中基于预先配置的任务调度模型以及任务的属性,确定待执行任务;
为所述待执行任务生成任务序号,将所述待执行任务放入任务队列,并将所述待执行任务在所述任务表中的任务状态设置为运行中;
从所述任务队列中读取任务并执行,若执行成功,将该任务在所述任务表中的任务状态设置为成功,若执行异常,将该任务在所述任务表中的任务状态设置为异常。
进一步,所述在任务状态为初始的任务中基于预先配置的任务调度模型以及任务的属性,确定待执行任务,包括:
在任务状态为初始状态的任务中选择启用值为可启用的任务;
在选择出的启用值为可启用的任务中选择优先级最高的任务;
在选择出的优先级最高的任务中选择任务类型耗时最短的任务;
在选择出的任务类型耗时最短的任务中选择执行期限最短的任务作为所述待执行任务。
进一步,在任务执行成功,将该任务在所述任务表中的任务状态设置为成功之后,所述方法还包括:
判断该任务是否为具有依赖关系的多个串行执行任务中的一个任务;
若该任务为具有依赖关系的多个串行执行任务中的一个任务时,判断该任务是否为具有依赖关系的多个串行执行任务中的最后一个任务;
若该任务不是具有依赖关系的多个串行执行任务中的最后一个任务,将其中该任务后的任务在所述任务表中的启用值设置为可启用,其中,具有依赖关系的多个串行执行任务在初始状态下第一个任务的启用值为可启用,其他任务的启用值为不可启用。
进一步,在任务执行异常,将该任务在所述任务表中的任务状态设置为异常之后,所述方法还包括:
扫描所述任务表中该任务的异常重试次数是否达到阈值;
若达到阈值,发出任务执行异常提示信息;
若未达到阈值,则将该任务在所述任务表中的任务状态设置为初始,根据该任务的实际执行时长更新所述任务表中该任务的执行期限,并将异常重试次数加1。
需要说明的是,本发明提供的一种任务调度执行方法及装置,可应用于金融领域或其他领域,例如,可应用于金融领域中的业务处理应用场景。其他领域为除金融领域之外的任意领域,例如,电力领域。上述仅为示例,并不对本发明提供的一种任务调度执行方法及装置的应用领域进行限定。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
上述各个实施例之间可任意组合,对所公开的实施例的上述说明,本说明书中各实施例中记载的特征可以相互替换或者组合,使本领域专业技术人员能够实现或使用本申请。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种任务调度执行方法,其特征在于,包括:
在接收到任务的情况下,获取该任务的属性信息,任务的属性包括:启用值、优先级、任务类型以及执行期限;
将该任务的属性信息写入任务表,并将该任务在所述任务表中的任务状态设置为初始;
扫描所述任务表,在任务状态为初始的任务中基于预先配置的任务调度模型以及任务的属性,确定待执行任务;
为所述待执行任务生成任务序号,将所述待执行任务放入任务队列,并将所述待执行任务在所述任务表中的任务状态设置为运行中;
从所述任务队列中读取任务并执行,若执行成功,将该任务在所述任务表中的任务状态设置为成功,若执行异常,将该任务在所述任务表中的任务状态设置为异常。
2.根据权利要求1所述的方法,其特征在于,所述在任务状态为初始的任务中基于预先配置的任务调度模型以及任务的属性,确定待执行任务,包括:
在任务状态为初始状态的任务中选择启用值为可启用的任务;
在选择出的启用值为可启用的任务中选择优先级最高的任务;
在选择出的优先级最高的任务中选择任务类型耗时最短的任务;
在选择出的任务类型耗时最短的任务中选择执行期限最短的任务作为所述待执行任务。
3.根据权利要求2所述方法,其特征在于,在任务执行成功,将该任务在所述任务表中的任务状态设置为成功之后,所述方法还包括:
判断该任务是否为具有依赖关系的多个串行执行任务中的一个任务;
若该任务为具有依赖关系的多个串行执行任务中的一个任务时,判断该任务是否为具有依赖关系的多个串行执行任务中的最后一个任务;
若该任务不是具有依赖关系的多个串行执行任务中的最后一个任务,将其中该任务后的任务在所述任务表中的启用值设置为可启用,其中,具有依赖关系的多个串行执行任务在初始状态下第一个任务的启用值为可启用,其他任务的启用值为不可启用。
4.根据权利要求1所述的方法,其特征在于,在任务执行异常,将该任务在所述任务表中的任务状态设置为异常之后,所述方法还包括:
扫描所述任务表中该任务的异常重试次数是否达到阈值;
若达到阈值,发出任务执行异常提示信息;
若未达到阈值,则将该任务在所述任务表中的任务状态设置为初始,根据该任务的实际执行时长更新所述任务表中该任务的执行期限,并将异常重试次数加1。
5.一种任务调度执行装置,其特征在于,包括:
任务接收单元,用于在接收到任务的情况下,获取该任务的属性信息,任务的属性包括:启用值、优先级、任务类型以及执行期限;
任务表更新单元,用于将该任务的属性信息写入任务表,并将该任务在所述任务表中的任务状态设置为初始;
任务表扫描单元,用于扫描所述任务表,在任务状态为初始的任务中基于预先配置的任务调度模型以及任务的属性,确定待执行任务;
序号生成单元,用于为所述待执行任务生成任务序号,将所述待执行任务放入任务队列,并将所述待执行任务在所述任务表中的任务状态设置为运行中;
任务执行单元,用于从所述任务队列中读取任务并执行,若执行成功,将该任务在所述任务表中的任务状态设置为成功,若执行异常,将该任务在所述任务表中的任务状态设置为异常。
6.根据权利要求5所述的装置,其特征在于,所述任务表扫描单元,具体用于:
在任务状态为初始状态的任务中选择启用值为可启用的任务;
在选择出的启用值为可启用的任务中选择优先级最高的任务;
在选择出的优先级最高的任务中选择任务类型耗时最短的任务;
在选择出的任务类型耗时最短的任务中选择执行期限最短的任务作为所述待执行任务。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括启用值更新单元,用于:
在任务执行成功,将该任务在所述任务表中的任务状态设置为成功之后,判断该任务是否为具有依赖关系的多个串行执行任务中的一个任务;
若该任务为具有依赖关系的多个串行执行任务中的一个任务时,判断该任务是否为具有依赖关系的多个串行执行任务中的最后一个任务;
若该任务不是具有依赖关系的多个串行执行任务中的最后一个任务,将其中该任务后的任务在所述任务表中的启用值设置为可启用,其中,具有依赖关系的多个串行执行任务在初始状态下第一个任务的启用值为可启用,其他任务的启用值为不可启用。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括异常处理单元,用于:
在任务执行异常,将该任务在所述任务表中的任务状态设置为异常之后,扫描所述任务表中该任务的异常重试次数是否达到阈值;
若达到阈值,发出任务执行异常提示信息;
若未达到阈值,则将该任务在所述任务表中的任务状态设置为初始,根据该任务的实际执行时长更新所述任务表中该任务的执行期限,并将异常重试次数加1。
9.一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-4中任一项所述的任务调度执行方法。
10.一种处理器,所述处理器用于运行程序,其中,所述程序运行时实现如权利要求1-4中任一项所述的任务调度执行方法。
CN202210922653.XA 2022-08-02 2022-08-02 一种任务调度执行方法及装置 Pending CN115292013A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210922653.XA CN115292013A (zh) 2022-08-02 2022-08-02 一种任务调度执行方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210922653.XA CN115292013A (zh) 2022-08-02 2022-08-02 一种任务调度执行方法及装置

Publications (1)

Publication Number Publication Date
CN115292013A true CN115292013A (zh) 2022-11-04

Family

ID=83825496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210922653.XA Pending CN115292013A (zh) 2022-08-02 2022-08-02 一种任务调度执行方法及装置

Country Status (1)

Country Link
CN (1) CN115292013A (zh)

Similar Documents

Publication Publication Date Title
US10459915B2 (en) Managing queries
US7016909B2 (en) Method and system for expansion of recurring calendar events
CN109064325B (zh) 一种基于区块链的智能合约实现方法和装置
CN110336859B (zh) 一种多租户环境下的任务调度系统
CN107577527B (zh) 任务生成、调度方法及装置
CN112699098B (zh) 一种索引数据迁移方法、装置及设备
CN111507608B (zh) 工单预警方法、装置和存储介质
CN113627832A (zh) 一种用于用电信息采集的任务多级智能调度方法
CN114756356A (zh) 任务处理方法、工作节点设备、主节点设备及存储介质
CN113342554A (zh) Io多路复用方法、介质、设备和操作系统
CN115292013A (zh) 一种任务调度执行方法及装置
CN114780296B (zh) 数据库集群的数据备份方法、装置及系统
CN111638892A (zh) 一种优化应用更新排序的方法、装置、系统及存储介质
CN115237577A (zh) 基于优先队列的作业调度方法及装置
CN115098232A (zh) 任务调度的方法、装置和设备
CN110543349B (zh) 一种应用启动加速方法、装置及计算机可读存储介质
CN112925659A (zh) 消息处理方法、装置、设备及计算机存储介质
EP4346191A1 (en) Data processing method, and apparatus
CN113127221A (zh) 一种限制消息消费速率的方法、装置、设备及存储介质
CN111930475B (zh) 启动ett运行的方法及装置
CN117311950B (zh) 任务处理方法、任务处理装置、电子设备及存储介质
CN114328194A (zh) 一种基于rocket mq来实现超时重试执行方法
CN115269152A (zh) 用于调度作业的方法
CN115328942A (zh) 业务执行方法、系统、介质及终端
CN114168323A (zh) 基于io响应时间的io资源限制方法、装置、设备和介质

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