任务的调度方法、装置及存储介质与流程

文档序号:16971860发布日期:2019-02-26 18:37阅读:241来源:国知局
任务的调度方法、装置及存储介质与流程

本发明涉及通讯技术领域,特别是涉及一种任务的调度方法、装置及存储介质。



背景技术:

智能网是为了更灵活、方便、经济、有效地提供增值业务(即各种新业务),在传统的移动交换网中引入的一种叠加网络,整个移动网络便形成了由原有的交换层和叠加的智能层构成的网络结构,交换层负责完成基本业务呼叫连接功能,而复杂的一些增值业务则由智能层控制实现,常见的智能网业务有预付费业务、动感地带业务、充值业务等。

随着互联网应用的迅猛发展,智能网业务的管理界面接入方式发生了翻天覆地的变化,不再限于传统的电脑接入方式(例如web门户),手机、pad各种终端接入方式越来越被大家认可,后台应用也在适应这种变化,将各功能独立化、模块化,避免模块间的强耦合,避免相同功能的重复开发和测试,通常会为用户通过不同渠道提交的请求建立一个或多个任务,生成任务标识写入任务表,同时将任务标识返回给渠道,由任务调度处理程序处理,处理结束后发消息给渠道通知处理结果或由渠道根据任务标识主动查询执行结果。

现有任务处理机制虽然解决了不同渠道相同功能的代码重用问题,但是在复杂的多并发多任务系统中,任务处理效率、响应速度、系统处理能力、系统开销、维护开销等方面仍需改进。



技术实现要素:

为了克服上述缺陷,本发明要解决的技术问题是提供一种任务的调度方法、装置及存储介质,用以至少提高现有任务调度的处理效率。

为解决上述技术问题,本发明提供一种任务的调度方法,所述方法包括:

根据每个任务的任务属性,确定所述每个任务的调度步长;

根据所述每个任务的调度步长,确定所述每个任务的调度值;

根据各调度值的大小顺序,调度各调度值对应的任务执行。

可选地,所述根据每个任务的任务属性,确定所述每个任务的调度步长,包括:

根据所述每个任务的任务属性,确定所述每个任务的优先级;

根据所述每个任务的优先级,确定所述每个任务的调度步长。

具体地,所述优先级的顺序与所述调度步长的大小对应。

可选地,所述根根据每个任务的任务属性,确定所述每个任务的调度步长,包括:

根据所述每个任务的任务属性,在预设的映射表中匹配出所述每个任务的调度步长;所述映射表为任务属性和任务调度步长的映射关系表。

可选地,所述调度值的计算公式如下:

调度值=当前系统时间+调度步长。

可选地,所述调度步长由所述调度步长内的任务数量和每个任务的执行时间确定。

可选地,所述根据各调度值的大小顺序,调度各调度值对应的任务执行,包括:

将所述每个任务和所述每个任务对应的调度值写入任务队列;

在所述任务队列中,根据各调度值的大小顺序,调度各调度值对应的任务执行。

具体地,所述任务队列为单队列形式。

为解决上述技术问题,本发明提供一种任务的调度装置,所述装置包括存储器和处理器,所述存储器存储有任务的调度计算机程序,所述处理器执行所述计算机程序,以实现如上任意一项所述方法的步骤。

为解决上述技术问题,本发明提供一种计算机可读存储介质,所述介质存储有任务的调度计算机程序,所述计算机程序被至少一个处理器执行时,以实现如上任意一项所述方法的步骤。

本发明有益效果如下:

本发明中方法、装置及相应存储介质,通过根据任务的任务属性,确定所述任务的调度步长;根据所述调度步长,确定所述任务的调度值;根据所述调度值,调度所述任务执行,从而有效降低了现有任务调度方法的实现复杂度,有效解决多并发多任务系统的任务按优先级调度而存在的问题,有效提高任务处理效率和响应速度。

附图说明

图1是本发明实施例中一种任务的调度方法流程图;

图2是本发明实施例中一种任务的调度装置的结构示意图。

具体实施方式

为了解决现有技术的问题,本发明提供了一种任务的调度方法、装置及存储介质,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不限定本发明。

实施例一

如图1所示,本发明实施例提供一种任务的调度方法,所述方法包括:

s101,根据每个任务的任务属性,确定所述每个任务的调度步长;

s102,根据所述每个任务的调度步长,确定所述每个任务的调度值;

s103,根据各调度值的大小顺序,调度各调度值对应的任务执行。

本发明实施例中方法用于多并发多任务系统。

本发明实施例中方法可以广泛用于需要严格按照优先级调度任务的领域,例如:票务系统、订单处理系统等。

本发明实施例通过根据任务的任务属性,确定所述任务的调度步长;根据所述调度步长,确定所述任务的调度值;根据所述调度值,调度所述任务执行,从而有效降低了现有任务调度方法的实现复杂度,有效解决多并发多任务系统的任务按优先级调度存在的问题,有效提高任务处理效率和响应速度。

在上述实施例的基础上,进一步提出上述实施例的变型。

在本发明实施例中,可选地,所述根据每个任务的任务属性,确定所述每个任务的调度步长,包括:

根据所述每个任务的任务属性,确定所述每个任务的优先级;

根据所述每个任务的优先级,确定所述每个任务的调度步长。

进一步地,所述优先级的顺序与所述调度步长的大小对应。

可选地,所述根据每个任务的任务属性,确定所述每个任务的调度步长,包括:

根据所述每个任务的任务属性,在预设的映射表中匹配出所述每个任务的调度步长;所述映射表为任务属性和任务调度步长的映射关系表。

也就是说,如表1所示,任务属性-任务调度步长映射表(简称为映射表)记录了任务属性、任务的优先级和任务的调度步长的对应关系,本发明实施例中,通过映射表简化了任务优先级的判断,使优先级的设置也更加灵活,从而使队列的维护开销不会随优先级增多而指数级的增长。

在本发明实施例中,可选地,所述调度值的计算公式如下:

调度值=当前系统时间(精确到百毫秒)+调度步长(精确到百毫秒)。

本发明实施例中调度值的计算公式中包含了任务创建时间(当前系统时间)和任务的优先级信息(调度步长),从而确保了优先级最高且最先创建的任务被最先调度。

在本发明实施例中,可选地,所述调度步长由所述调度步长内的任务数量和每个任务的执行时间确定。

也就是说,本发明实施例中,各优先级任务对应的调度步长,是区分任务优先级的关键,调度步长的设定要确保在此步长时间段内所有该等级的任务都能执行完,这样才能避免发生越级调度,调度步长只影响任务的调度顺序和任务的实际调度时间无关,其中调度步长可以以天为单位配置(内部转换为百毫秒)。

可选地,所述根据各调度值的大小顺序,调度各调度值对应的任务执行,包括:

将所述每个任务和所述每个任务对应的调度值写入任务队列;

在所述任务队列中,根据各调度值的大小顺序,调度各调度值对应的任务执行。

也就是说,按照调度值从小到大的顺序,调度各调度值对应的任务执行。

进一步地,所述任务队列为单队列形式。

以下详细说明本发明实施例。

本发明实施例中采用单队列替代现有技术中的多队列,引入了调度步长,根据任务的多个属性来确定任务的优先级和调度步长,只要调度步长足够大,就能确保任务严格按照优先级来调度,同时当高优先级的任务都被执行完成后低优先级任务能被及时调度。

进一步,通过任务属性-任务调度步长映射表,来确定任务的优先级及对应的调度步长;获取任务调度步长后,根据调度值计算公式计算出此任务的调度值,按照调度值从小到大的顺序依次调度任务执行,调度时不需要关心任务的优先级,也不需要关心任务的创建时间顺序。

本发明实施例在具体实现时,可以采用软件模块的形式。例如本发明实施例中主要包括任务接收模块、映射表配置模块、调度值计算模块、任务队列、任务调度执行模块。

所述任务接收模块,主要负责接收任务请求,任务请求中包含:任务类型、任务渠道(例如;web,手机app)、任务参数等任务属性。任务接收模块提取任务属性,传递给调度值计算模块计算调度值。

所述映射表配置模块,主要负责配置任务属性对应的任务优先级和调度步长,供调度值计算模块计算调度值使用,支持多个任务属性联合确定任务优先级和调度步长。调度步长的设定要确保在此步长时间段内所有该等级的任务都能执行完,这样才能避免发生越级调度,调度步长只影响任务的调度顺序和任务的实际调度时间无关,建议以天为单位配置(内部转换为百毫秒)。

所述调度值计算模块,主要负责根据任务的属性查映射表确定任务优先级及调度步长,根据调度值计算公式计算出任务的调度值。具体公式为:

调度值=当前系统时间(精确到百毫秒)+调度步长(精确到百毫秒)。

所述任务队列存储所有未执行完的任务,按调度值为任务排序,调度值越小优先级越高调度越优先。

所述任务调度执行模块,主要负责按调度值从小到大的顺序依次从任务队列中获取任务执行并返回执行结果。

基于以上软件模块,本发明实施例的任务调度过程可以包括以下步骤:

(1)根据任务的业务需求确定任务属性对应的任务优先级和调度步长,通过映射表配置模块配置任务属性和任务优先级及任务调度步长映射关系。

(2)任务接收模块接收任务请求,解析任务属性,将任务属性传递给调度值计算模块。

(3)调度值计算模块根据任务属性查映射表获取任务调度步长。根据调度值计算公式计算出任务调度值,并将任务属性、任务优先级和调度值写入任务队列。

(4)任务调度执行模块从任务队列中获取任务调度值最小的任务调度执行。

本发明实施例中方法,与现有技术相比,可以解决复杂的多优先级多任务实时系统中任务调度优先级问题,映射表的引入简化了任务优先级的判断,使优先级的设置也更加灵活,任务队列的维护开销不会随优先级增多而指数级的增长;任务调度值的计算方法确保了任务严格按照优先级调度;任务的调度值只在任务进入调度队列前生成,不需要动态调整和修正,保证了任务调度的高效,提高了任务响应时间和处理效率。

举一具体应用例说明本发明实施例。

本应用例涉及的任务调度处理过程包括以下部分:

步骤1:根据任务属性的分类,配置业务属性对应的优先级和调度步长映射表。

步骤2:接收任务请求,解析任务属性,转入步骤3。

步骤3:根据任务属性,对照映射表获取优先级和调度步长,并根据调度值计算公式计算出调度值,转入步骤4。

步骤4:将任务的属性和优先级及调度值存储在数据库任务表中。

步骤5:从任务表中获取调度值最小的任务。

步骤6:判断是否存在任务,如果存在则下一步转入步骤7,否则转入步骤8。

步骤7:执行任务并返回执行结果。

步骤8:休眠一段时间。

实施例二

如图2所示,本发明实施例提供一种任务的调度装置,所述装置包括存储器20和处理器22,所述存储器20存储有任务的调度计算机程序,所述处理器22执行所述计算机程序,以实现如实施例一中任意一项所述方法的步骤。

本发明实施例通过根据任务的任务属性,确定所述任务的调度步长;根据所述调度步长,确定所述任务的调度值;根据所述调度值,调度所述任务执行,从而有效降低了现有任务调度方法的实现复杂度,有效解决多并发多任务系统的任务按优先级调度问题,提高任务处理效率和响应速度。

具体说,所述处理器22执行所述计算机程序,以实现如下步骤:

根据每个任务的任务属性,确定所述每个任务的调度步长;

根据所述每个任务的调度步长,确定所述每个任务的调度值;

根据各调度值的大小顺序,调度各调度值对应的任务执行。

可选地,所述根据每个任务的任务属性,确定所述每个任务的调度步长,包括:

根据所述每个任务的任务属性,确定所述每个任务的优先级;

根据所述每个任务的优先级,确定所述每个任务的调度步长。

其中,所述优先级的顺序与所述调度步长的大小对应。

可选地,所述根据每个任务的任务属性,确定所述每个任务的调度步长,包括:

根据所述每个任务的任务属性,在预设的映射表中匹配出所述每个任务的调度步长;所述映射表为任务属性和任务调度步长的映射关系表。

可选地,所述调度值的计算公式如下:

调度值=当前系统时间+调度步长。

可选地,所述调度步长由所述调度步长内的任务数量和每个任务的执行时间确定。

可选地,所述根据各调度值的大小顺序,调度各调度值对应的任务执行,包括:

将所述每个任务和所述每个任务对应的调度值写入任务队列;

在所述任务队列中,根据各调度值的大小顺序,调度各调度值对应的任务执行。

在此需要说明的是,本发明实施例在具体实现时可以参阅实施例一,也具有相应的技术效果。

实施例三

本发明实施例提供一种计算机可读存储介质,所述介质存储有任务的调度计算机程序,所述计算机程序被至少一个处理器执行时,以实现如实施例一中任意一项所述方法的步骤。

本发明实施例中计算机可读存储介质可以是ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、移动硬盘、cd-rom或者本领域已知的任何其他形式的存储介质。可以将一种存储介质藕接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息;或者该存储介质可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路中。

在此需要说明的是,本发明实施例在具体实现时可以参阅实施例一和实施例二,也具有相应的技术效果。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1