任务调度方法和装置制造方法及图纸

技术编号:17406448 阅读:19 留言:0更新日期:2018-03-07 04:29
本发明专利技术提出了一种任务调度方法,所述方法包括:接收任务调度请求,提取所述任务调度请求中的任务类型;在任务调度表中查找与所述任务类型对应的目标任务,所述任务调度表中记载了所有的任务及相应的任务类型;读取查找到的所述目标任务的状态;当所述目标任务的状态为可执行状态时,锁住所述目标任务,将所述目标任务的状态更改为不可执行状态。通过任务调度表记载所有的任务及相应的任务状态,只有读取到目标任务处于可执行状态时,才允许调用该任务,有效防止了出现一条任务被争抢执行,从而也防止了一条业务数据被多次读取或多次写入的情况。此外,还提出了一种任务调度的装置。

Task scheduling method and device

【技术实现步骤摘要】
任务调度方法和装置
本专利技术涉及计算机处理领域,特别是涉及一种任务调度方法和装置。
技术介绍
任务调度是操作系统的重要组成部分,通过调度任务来处理相关的业务数据。任务是指按照一定的业务逻辑对相应的业务数据进行处理的一种计算资源。在很多系统中都存在自动执行的作业任务调度,但是任务调度框架无法保证在多台机器上同一时间点只有一台在执行,导致出现一条作业任务在多台机器上被争抢,从而出现一条业务数据被多次读取或多次写入的情况。
技术实现思路
基于此,有必要针对上述问题,提供一种可以避免同一条任务被争抢执行的任务调度方法和装置。一种任务调度方法,所述方法包括:接收任务调度请求,提取所述任务调度请求中的任务类型;在任务调度表中查找与所述任务类型对应的目标任务,所述任务调度表中记载了所有的任务及相应的任务类型;读取查找到的所述目标任务的状态;当所述目标任务的状态为可执行状态时,锁住所述目标任务,将所述目标任务的状态更改为不可执行状态。在其中一个实施例中,在所述当所述目标任务的任务状态为可执行状态时,锁住所述目标任务,将所述目标任务的状态更改为不可执行状态的步骤之后还包括:调用所述目标任务按照对应的业务逻辑处理相应的业务数据;当处理完所述业务数据后,释放所述目标任务,将所述目标任务的状态更改为可执行状态。在其中一个实施例中,所述调用所述目标任务按照对应的业务逻辑处理相应的业务数据的步骤包括:获取业务数据表中处于待执行状态的业务数据,其中,业务数据表中记载了每条业务数据的状态;调用所述目标任务按照对应的业务逻辑处理所述业务数据,每处理完一条业务数据,将业务数据表中的与该条业务数据对应的状态更改为完成。在其中一个实施例中,所述当所述目标任务的任务状态为可执行状态时,锁住所述目标任务,将所述目标任务的状态更改为不可执行状态的步骤包括:当所述目标任务的任务状态为可执行状态时,通过在所述任务调度表中锁住所述目标任务对应的任务锁来锁住所述目标任务,然后将所述目标任务的状态更改为不可执行状态。在其中一个实施例中,所述方法还包括:定时发起检测所述任务调度表中的任务是否在可执行状态;若否,则检测任务对应的任务记录表中是否在预设时间内有任务写入;若检测到在预设时间内没有任务写入时,强制将所述任务翻转为可执行状态。一种任务调度装置,所述装置包括:接收模块,用于接收任务调度请求,提取所述任务调度请求中的任务类型;查找模块,用于在任务调度表中查找与所述任务类型对应的目标任务,所述任务调度表中记载了所有的任务及相应的任务类型;读取模块,用于读取查找到的所述目标任务的状态;锁住模块,用于当所述目标任务的状态为可执行状态时,锁住所述目标任务,将所述目标任务的状态更改为不可执行状态。在其中一个实施例中,所述装置还包括:调用模块,用于调用所述目标任务按照对应的业务逻辑处理相应的业务数据;释放模块,用于当处理完所述业务数据后,释放所述目标任务,将所述目标任务的状态更改为可执行状态。在其中一个实施例中,所述调用模块包括:获取模块,用于获取业务数据表中处于待执行状态的业务数据,其中,业务数据表中记载了每条业务数据的状态;处理模块,用于调用所述目标任务按照对应的业务逻辑处理所述业务数据,每处理完一条业务数据,将业务数据表中的与该条业务数据对应的状态更改为完成。在其中一个实施例中,所述锁住模块还用于当所述目标任务的任务状态为可执行状态时,通过在所述任务调度表中锁住所述目标任务对应的任务锁来锁住所述目标任务,然后将所述目标任务的状态更改为不可执行状态。在其中一个实施例中,所述装置还包括:第一检测模块,用于定时发起检测所述任务调度表中的任务是否在可执行状态;第二检测模块,用于若所述任务调度表中的任务在不可执行状态,则检测所述任务对应的任务记录表中是否在预设时间内有任务写入;翻转模块,用于若检测到在预设时间内没有任务写入时,强制将所述任务翻转为可执行状态。上述任务调度方法和装置,通过接收任务调度请求,提取任务调度请求中的任务类型,进而在任务调度表中查找与任务类型对应的目标任务,任务调度表中记载了所有的任务及相应的任务类型,读取查找到的目标任务的任务状态,当目标任务处于可执行状态时,锁住该目标任务,将该目标任务的状态更改为不可执行状态。通过任务调度表记载所有的任务及相应的任务状态,当读取到目标任务处于可执行状态时,说明该目标任务当前没有执行,锁住该目标任务,并将目标任务的状态更改为不可执行状态,这样其他程序就不能再调用该任务,有效防止了出现一条任务被争抢执行,从而也防止了一条业务数据被多次读取或多次写入的情况。附图说明图1为一个实施例中任务调度的方法流程图;图2为另一个实施例中任务调度的方法流程图;图3为一个实施例中调用目标任务按照对应的业务逻辑处理相应的业务数据的方法流程图;图4为一个实施例中检测任务调度是否发生异常的方法流程图;图5为一个实施例中任务调度的装置结构框图;图6为另一个实施例中任务调度的装置结构框图;图7为一个实施例中调用模块的结构框图;图8为一个实施例中任务调度的装置结构框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,在一个实施例中,提出了一种任务调度方法,该方法包括:步骤102,接收任务调度请求,提取任务调度请求中的任务类型。具体的,任务调度是操作系统的重要组成部分,通过调度任务来处理相关的业务数据。任务是指按照一定的业务逻辑对相应的业务数据进行处理的一种计算资源。不同的任务对应不同的作用,预先为不同的任务设置不同的任务类型,然后将任务和与其对应的任务类型进行对应存储。接收到任务调度请求后,首先是提取该任务调度请求中的任务类型,进而根据该任务类型去查找对应的任务。步骤104,在任务调度表中查找与任务类型对应的目标任务,任务调度表中记载了所有的任务及相应的任务类型。具体的,任务调度表中记载了所有的任务及相应的任务类型,提取到任务调度请求中的任务类型后,在任务调度表中查找与任务类型对应的任务,将查找到的任务作为目标任务。任务调度表存放在数据库中,任务调度表是进行任务调度的关键,通过任务调度表来进行任务的查找,后续还需要根据该任务调度表进行状态的读取,进而实现对任务的调度。步骤106,读取查找到的目标任务的状态是否为可执行状态,若目标任务的状态为可执行状态,则进入步骤108,若目标任务的状态为不可执行状态,则结束。在本实施例中,任务调度表中除了记载了所有的任务及相应的任务类型外,还记载了每个任务相应的任务状态,任务状态分为两种,一种是可执行状态,一种是不可执行状态。当任务状态为可执行状态时说明该任务没有被占用,处于可用状态。当任务状态为不可执行状态时说明该任务目前正在被占用状态,不可用。具体的,查找到与任务类型对应的目标任务后,读取该目标任务的任务状态,若目标任务的任务状态为可执行状态时,说明该目标任务处于空闲状态,首先将该目标任务锁住,这样防止其他应用程序再来调用该目标任务,之后再将该目标任务的状态更改为不可执行状态。当目标任务的任务状态为不可执行状态时,说明该目标任务处于被占用的状态,目前不可用,本文档来自技高网...
任务调度方法和装置

【技术保护点】
一种任务调度方法,所述方法包括以下步骤:接收任务调度请求,提取所述任务调度请求中的任务类型;在任务调度表中查找与所述任务类型对应的目标任务,所述任务调度表中记载了所有的任务及相应的任务类型;读取查找到的所述目标任务的状态;当所述目标任务的状态为可执行状态时,锁住所述目标任务,将所述目标任务的状态更改为不可执行状态。

【技术特征摘要】
1.一种任务调度方法,所述方法包括以下步骤:接收任务调度请求,提取所述任务调度请求中的任务类型;在任务调度表中查找与所述任务类型对应的目标任务,所述任务调度表中记载了所有的任务及相应的任务类型;读取查找到的所述目标任务的状态;当所述目标任务的状态为可执行状态时,锁住所述目标任务,将所述目标任务的状态更改为不可执行状态。2.根据权利要求1所述的方法,其特征在于,在所述当所述目标任务的状态为可执行状态时,锁住所述目标任务,将所述目标任务的状态更改为不可执行状态的步骤之后还包括:调用所述目标任务,按照对应的业务逻辑处理相应的业务数据;当处理完所述业务数据后,释放所述目标任务,将所述目标任务的状态更改为可执行状态。3.根据权利要求2所述的方法,其特征在于,所述调用所述目标任务按照对应的业务逻辑处理相应的业务数据的步骤包括:获取业务数据表中处于待执行状态的业务数据,其中,业务数据表中记载了每条业务数据的状态;调用所述目标任务按照对应的业务逻辑处理所述业务数据,每处理完一条业务数据,将业务数据表中的与该条业务数据对应的状态更改为完成。4.根据权利要求1所述的方法,其特征在于,所述当所述目标任务的任务状态为可执行状态时,锁住所述目标任务,将所述目标任务的状态更改为不可执行状态的步骤包括:当所述目标任务的状态为可执行状态时,通过在所述任务调度表中锁住所述目标任务对应的任务锁来锁住所述目标任务,然后将所述目标任务的状态更改为不可执行状态。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:定时发起检测所述任务调度表中的任务是否在可执行状态;若否,则检测任务对应的任务记录表中是否在预设时间内有任务写入;若检测到在预设时间内没有任务写入时,强制将所述任务...

【专利技术属性】
技术研发人员:薛思源周群让
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1