一种调度方法和装置与流程

文档序号:11251047阅读:2056来源:国知局
一种调度方法和装置与流程
本发明涉及计算机
技术领域
,特别涉及一种调度方法和装置。
背景技术
:随着企业管理的要求不断提高,基础信息实时同步、业务场景实时更新的需求不断呈现。在实际应用场景中,不同的业务场景对应不同的调度任务,如何根据调度任务的变化进行相应文件的调度,是开发人员一直关注的问题。目前,在现有的调度方法中,预先绑定调度文件与调度规则的关系,使得该调度方法只能用于特定的业务场景,当调度规则发生变化时,需要开发新的调用方法。因此,现有的调度方法重复利用率低。技术实现要素:本发明实施例提供了一种调度方法和装置,能够提高重复利用率。第一方面,本发明实施例提供了一种调度方法,预先针对每一个调度任务,创建调度文件表结构和调度规则表结构,所述调度文件表结构,用于存储调度文件的信息,所述调度规则表结构,用于存储调度规则,还包括:接收外部发送的调度请求;根据所述调度请求,确定目标调度任务;根据所述目标调度任务对应的目标调度文件表结构和目标调度规则表结构,确定目标调度文件的信息和目标调度规则;根据所述目标调度文件的信息和所述目标调度规则,调度所述目标调度文件。优选地,所述调度文件的信息,包括:文件类型、文件路径、文件名称、命名空间、类名和方法名中任意一种或多种;所述文件类型,包括:动态链接库、可执行文件和结构化查询语言语句中任意一种或多种。优选地,所述调度规则,包括:执行类型、时间类型、开始日期、截止日期、开始时间、截止时间、间隔时间、时间单位、执行时间、执行月、执行周和执行日中任意一种或多种;所述执行类型,包括:开发人员模式和普通模式;所述时间类型,包括:间隔、每天和每月。优选地,进一步包括:预先为每一个所述调度任务,设置计时器;当接收到外部针对所述目标调度任务发送的触发指令时,触发所述目标调度任务对应的目标计时器进行计时;所述调度规则,包括:开始日期、截止日期、开始时间、截止时间和执行时间;所述根据所述目标调度文件的信息和所述目标调度规则,调度所述目标调度文件,包括:按照预设的时间周期对所述目标计时器进行监测,当监测到所述目标计时器的时间达到所述执行时间,且所述目标计时器的时间在所述开始日期、所述截止日期、所述开始时间和所述截止时间确定的时间范围内时,根据所述目标调度文件的信息,调度所述目标调度文件。第二方明,本发明实施例提供了一种调度装置,包括:创建单元,用于针对每一个调度任务,创建调度文件表结构和调度规则表结构,所述调度文件表结构,用于存储调度文件的信息,所述调度规则表结构,用于存储调度规则;接收单元,用于接收外部发送的调度请求;确定单元,用于根据所述接收单元接收的所述调度请求,确定目标调度任务;根据所述目标调度任务对应的所述创建单元创建的目标调度文件表结构和目标调度规则表结构,确定目标调度文件的信息和目标调度规则;调度单元,用于根据所述确定单元确定的所述目标调度文件的信息和所述目标调度规则,调度所述目标调度文件。优选地,所述调度文件的信息,包括:文件类型、文件路径、文件名称、命名空间、类名和方法名中任意一种或多种;所述文件类型,包括:动态链接库、可执行文件和结构化查询语言语句中任意一种或多种。优选地,所述调度规则,包括:执行类型、时间类型、开始日期、截止日期、开始时间、截止时间、间隔时间、时间单位、执行时间、执行月、执行周和执行日中任意一种或多种;所述执行类型,包括:开发人员模式和普通模式;所述时间类型,包括:间隔、每天和每月。优选地,进一步包括:设置单元,用于为每一个所述调度任务,设置计时器;计时单元,用于当接收到外部针对所述确定单元确定的所述目标调度任务发送的触发指令时,触发所述目标调度任务对应的所述设置单元设置的目标计时器进行计时;所述调度规则,包括:开始日期、截止日期、开始时间、截止时间和执行时间;所述调度单元,用于按照预设的时间周期对所述目标计时器进行监测,当监测到所述目标计时器的时间达到所述执行时间,且所述目标计时器的时间在所述开始日期、所述截止日期、所述开始时间和所述截止时间确定的时间范围内时,根据所述目标调度文件的信息,调度所述目标调度文件。第三方面,本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行上述任一实施例所述的方法。第四方面,本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行上述任一实施例所述的方法。本发明实施例提供了一种调度方法和装置,其中,该方法可以为不同业务场景对应的调度任务配置对应的调度文件表结构和调度规则表结构,并根据外部的调度请求,按照目标调度任务对应的调度规则,根据目标调度文件的信息对目标调度文件进行调度。现有的调度方法只能用于特定的业务场景,而本发明可以通过改变调度规则实现不同业务场景下的调度,提高重复利用率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明一个实施例提供的一种调度方法的流程图;图2是本发明另一个实施例提供的一种调度方法的流程图;图3是本发明一个实施例提供的一种调度装置的结构示意图;图4是本发明另一个实施例提供的一种调度装置的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。如图1所示,本发明实施例提供了一种调度方法,该方法可以包括以下步骤:步骤101:针对每一个调度任务,创建调度文件表结构和调度规则表结构,调度文件表结构,用于存储调度文件的信息,调度规则表结构,用于存储调度规则;步骤102:接收外部发送的调度请求;步骤103:根据调度请求,确定目标调度任务;步骤104:根据目标调度任务对应的目标调度文件表结构和目标调度规则表结构,确定目标调度文件的信息和目标调度规则;步骤105:根据目标调度文件的信息和目标调度规则,调度目标调度文件。在图1所示的本发明实施例中,该方法可以为不同业务场景对应的调度任务配置对应的调度文件表结构和调度规则表结构,并根据外部的调度请求,按照目标调度任务对应的调度规则,根据目标调度文件的信息对目标调度文件进行调度。现有的调度方法只能用于特定的业务场景,而本发明可以通过改变调度规则实现不同业务场景下的调度,提高重复利用率。在本发明的一个实施例中,为了实现对各种调度文件的准确调度,调度文件的信息,包括:文件类型、文件路径、文件名称、命名空间、类名和方法名中任意一种或多种;文件类型,包括:动态链接库、可执行文件和结构化查询语言语句中任意一种或多种。表1所示的是一种调度文件表结构。通过设置“函数编号”字段定义调度函数的编号,为调度函数的唯一标识,作为获取调度设置的标记字段。表1字段编号字段名称字段类型tyddxt_fnccode函数编号varchar(40)tyddxt_doctype文件类型varchar(10)tyddxt_dllpath文件路径varchar(200)tyddxt_dllname文件名称varchar(100)tyddxt_namespace命名空间varchar(100)tyddxt_classname类名varchar(100)tyddxt_method方法varchar(100)tyddxt_switch开关char(1)在本发明的一个实施例中,为了适应不同业务场景的调度需求,调度规则,包括:执行类型、时间类型、开始日期、截止日期、开始时间、截止时间、间隔时间、时间单位、执行时间、执行月、执行周和执行日中任意一种或多种;执行类型,包括:开发人员模式和普通模式;时间类型,包括:间隔、每天和每月。通过“执行类型”字段选择执行类型,执行类型包括开发人员模式,普通模式。通过“时间类型”字段选择执行的时间类型,时间类型分为间隔、每天、每月。间隔:选择“间隔时间”和“时间单位”,计时器按照设置的间隔时间扫描。每天:选择“执行时间”作为调度系统执行的时间点。每月:选择“执行月”和“执行日”,并设置“执行时间”。表2所示的是一种调度规则表结构。表2字段编号字段名称字段类型tyddxtset_fuccode函数编号varchar(40)tyddxtset_excutetype执行类型char(1)tyddxtset_timetype时间类型char(1)tyddxtset_startdate开始日期varchar(8)tyddxtset_stopdate截止日期varchar(8)tyddxtset_starttime开始时间varchar(6)tyddxtset_stoptime截止时间varchar(6)tyddxtset_intervaltime间隔时间inttyddxtset_timeunit时间单位char(2)tyddxtset_excutetime执行时间varchar(35)tyddxtset_excutemonth执行月varchar(36)tyddxtset_excuteday执行日varchar(100)tyddxtset_week执行周varchar(14)无论哪种时间模式,都需要设置“开始日期”、“开始时间”、“截止日期”、“截止时间”,调度过程只在设置时间内有效,截止时间点可设置为永远有效。在本发明的一个实施例中,该方法还包括:预先为每一个调度任务,设置计时器;当接收到外部针对目标调度任务发送的触发指令时,触发目标调度任务对应的目标计时器进行计时;调度规则,包括:开始日期、截止日期、开始时间、截止时间和执行时间;根据目标调度文件的信息和目标调度规则,调度目标调度文件,包括:按照预设的时间周期对目标计时器进行监测,当监测到目标计时器的时间达到执行时间,且目标计时器的时间在开始日期、截止日期、开始时间和截止时间确定的时间范围内时,根据目标调度文件的信息,调度目标调度文件。计时器负责计时、累加函数变量并判断当前时间是否满足该函数设置的发生时间,如果满足则线程数+1。因为不同文件调用的时间模式不同,所以计时器不能共用,因此为每个调度任务都定义属于自己的计时器,这样就可以设置特有的时间类型,而且函数之间的开启和停止不会相互影响。当同时有多个目标调度任务时,在代码实现的过程中,可以通过加锁的方式,防止并发。具体代码如下:执行第三方调度文件使用反射方法:如图2所示,本发明实施例以月调度为例,对调度方法进行详细地说明,该方法包括以下步骤:步骤201:针对每一个调度任务,创建调度文件表结构和调度规则表结构,调度文件表结构,用于存储调度文件的信息,调度规则表结构,用于存储调度规则。对于处理不同业务场景可以配置不同的时间类型,针对不同的时间类型也可以进行灵活的时间配置,其中主要的信息包括以下几点:立即执行:调度过程执行后,直接调用配置的调度文件,这个功能主要用于前期的测试工作。间隔调度:间隔调度模式适用于实时信息同步的业务场景,通过设置间隔时间、间隔时间单位、执行时间段、执行周可以灵活的配置各种符合现实业务场景的间隔调度。间隔模式下,如果设置间隔时间为5分钟,调度第三方文件执行时间为3分钟,计时器会在第一个5分钟到达后马上进入下一次计时,而不是等业务处理完成后再计时,保证了调度过程的准确性。日调度:日调度模式适用于日结算业务场景,可以通过设置五个执行时间点来灵活的配置执行时间,除此之外还可以根据是否工作日进行配置。按时间点进行调度的基本原理也是通过设置间隔时间,开启定时器扫描是否到达配置时间点。为保证调度文件能够在规定时间点准确执行,通过范围判断方法,确保调度文件的正确执行。月调度:月调度模式适用于月结算业务,这种模式除了继承日调度模式的基本配置外,还增加了月、日的选择,用户可以根据复杂的业务场景,选择指定月、日执行调度文件。除此之外,通过对月份的选择,月调度模式还可以变化成季度调度模式,满足季度业务场景的需求。对于时间点的判断,月调度模式同样采用范围判断法,确保调度文件的执行。步骤202:为每一个调度任务,设置计时器。步骤203:接收外部发送的调度请求。步骤204:根据调度请求,确定目标调度任务。步骤205:根据目标调度任务对应的目标调度文件表结构和目标调度规则表结构,确定目标调度文件的信息和目标调度规则。步骤206:当接收到外部针对目标调度任务发送的触发指令时,触发目标调度任务对应的目标计时器进行计时。步骤207:按照预设的时间周期对目标计时器进行监测,当监测到目标计时器的时间达到执行时间,且目标计时器的时间在开始日期、截止日期、开始时间和截止时间确定的时间范围内时,根据目标调度文件的信息,调度目标调度文件。例如,开始日期、截止日期、开始时间和截止时间分别为2017.01.01、2017.12.31、9:00:00、20:00:00,执行时间为12:00:00,当在日调度模式下,每一天的12:00:00开始执行调度,并于20:00:00终止调度。如图3所示,本发明实施例提供了一种调度装置,包括:创建单元301,用于针对每一个调度任务,创建调度文件表结构和调度规则表结构,调度文件表结构,用于存储调度文件的信息,调度规则表结构,用于存储调度规则;接收单元302,用于接收外部发送的调度请求;确定单元303,用于根据接收单元302接收的调度请求,确定目标调度任务;根据目标调度任务对应的创建单元301创建的目标调度文件表结构和目标调度规则表结构,确定目标调度文件的信息和目标调度规则;调度单元304,用于根据确定单元303确定的目标调度文件的信息和目标调度规则,调度目标调度文件。在本发明的一个实施例中,调度文件的信息,包括:文件类型、文件路径、文件名称、命名空间、类名和方法名中任意一种或多种;文件类型,包括:动态链接库、可执行文件和结构化查询语言语句中任意一种或多种。在本发明的一个实施例中,调度规则,包括:执行类型、时间类型、开始日期、截止日期、开始时间、截止时间、间隔时间、时间单位、执行时间、执行月、执行周和执行日中任意一种或多种;执行类型,包括:开发人员模式和普通模式;时间类型,包括:间隔、每天和每月。在本发明的一个实施例中,如图4所示,该装置还包括:设置单元305,用于为每一个调度任务,设置计时器;计时单元306,用于当接收到外部针对确定单元303确定的目标调度任务发送的触发指令时,触发目标调度任务对应的设置单元305设置的目标计时器进行计时;调度规则,包括:开始日期、截止日期、开始时间、截止时间和执行时间;调度单元304,用于按照预设的时间周期对目标计时器进行监测,当监测到目标计时器的时间达到执行时间,且目标计时器的时间在开始日期、截止日期、开始时间和截止时间确定的时间范围内时,根据目标调度文件的信息,调度目标调度文件。上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行执行指令时,存储控制器执行上述任一实施例的方法。本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;存储器用于存储执行指令,处理器与存储器通过总线连接,当存储控制器运行时,处理器执行存储器存储的执行指令,以使存储控制器执行上述任一实施例的方法。综上,本发明各个实施例至少具有如下效果:1、在本发明实施例中,该方法可以为不同业务场景对应的调度任务配置对应的调度文件表结构和调度规则表结构,并根据外部的调度请求,按照目标调度任务对应的调度规则,根据目标调度文件的信息对目标调度文件进行调度。现有的调度方法只能用于特定的业务场景,而本发明可以通过改变调度规则实现不同业务场景下的调度,提高重复利用率。2、在本发明实施例中,该方法可以实现对不同类型文件的直接调度,文件类型包括:动态链接库、可执行文件和结构化查询语言语句,可以满足不同业务场景的需求。3、在本发明实施例中,为不同的调度任务设置不同的计时器,可以为调度任务设置特有的时间类型,每一个调度任务之间不会相互影响,实现不同业务场景对应的调度任务。需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1