CN109901920A - 任务调度方法及装置、电子终端 - Google Patents
任务调度方法及装置、电子终端 Download PDFInfo
- Publication number
- CN109901920A CN109901920A CN201910048680.7A CN201910048680A CN109901920A CN 109901920 A CN109901920 A CN 109901920A CN 201910048680 A CN201910048680 A CN 201910048680A CN 109901920 A CN109901920 A CN 109901920A
- Authority
- CN
- China
- Prior art keywords
- task
- execution
- waiting
- allocation list
- scheduling
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000012545 processing Methods 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 6
- 235000013399 edible fruits Nutrition 0.000 claims 1
- 238000001914 filtration Methods 0.000 claims 1
- 239000010453 quartz Substances 0.000 abstract description 16
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 abstract description 16
- 238000011161 development Methods 0.000 abstract description 5
- 230000008569 process Effects 0.000 abstract description 4
- 238000004364 calculation method Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 7
- 230000001276 controlling effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供了一种任务调度方法及装置、电子终端,涉及计算技术领域。本发明实施例通过接收调度任务配置请求,输出当前调度任务配置表;然后,获取针对于当前调度任务配置表的操作信息,其中,所述操作信息包括任务调度参数;根据所述操作信息中的任务调度参数,生成目标调度任务配置表,目标调度任务配置表至少包括:n个定时任务,每个定时任务是否有效标识、开始执行时间;从而,从目标调度任务配置表中筛选出开始执行时间在当前时间或当前时间之后的、且具有有效标识的m个指定定时任务,并将m个指定定时任务作为m个待处理任务;进而,执行m个待处理任务。因此,本发明实施例提供的技术方案能够减少开关工作量和开发过程中出现的问题,实现灵活增加、修改quartz调度的需求。
Description
【技术领域】
本发明涉及通信技术领域,尤其涉及任务调度方法及装置、电子终端。
【背景技术】
任务调度是多数应用系统的常见需求之一。比较常使用的任务调动系统为Quartz,其为一种开源任务调度架构,具有较强大的调度机制,能用来调动多个任务执行。
目前使用Quartz实现对某些任务的调度控制时,需要先设定启动时间和频率,一旦启动时间、频率等调度参数确定后,很难再进行调整,对于由于某些原因需要临时调整任务执行时间,或者,需要新增任务时,需要根据需求重新编写Quartz调度,现有技术中在实现对任务调度的修改时,开发工作量大,工作效率低。
【发明内容】
有鉴于此,本发明实施例提供了一种任务调度方法及装置、电子终端,在需要临时调整任务执行时间或者需要新增任务的情绪下,不需要重新编程Quartz调度,减少开关工作量和开发过程中出现的问题,实现灵活增加、修改quartz调度的需求。
第一方面,本发明实施例提供了一种任务调度方法,所述任务调度方法包括:
接收调度任务配置请求,输出当前调度任务配置表;
获取针对于所述当前调度任务配置表的操作信息,其中,所述操作信息包括任务调度参数;
根据所述操作信息中的任务调度参数,生成目标调度任务配置表,所述目标调度任务配置表至少包括:n个定时任务,每个定时任务的执行周期,每个定时任务是否有效标识、开始执行时间;
从所述目标调度任务配置表中筛选出开始执行时间在当前时间或当前时间之后的、且具有有效标识的m个指定定时任务,并将所述m个指定定时任务作为m个待处理任务;
执行所述m个待处理任务;
其中,n为大于0的整数,m为大于0且小于等于n的整数。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,在所述执行所述m个待处理任务之前,所述方法还包括:
从与所述目标调度任务配置表对应的调度任务执行表中获取每个待处理任务的前一次执行状态,所述执行状态包括:执行中,执行失败,执行成功;
其中,所述执行所述m个待处理任务包括:
若当前待处理的第i个待处理任务的前一次执行状态为执行失败,执行第i+1个待处理任务,并将第i+1个待处理任务的执行状态配置为执行中,其中,i为大于0且小于m的整数;
若当前待处理的第i个待处理任务的前一次执行状态为执行中或执行成功,执行所述第i个待处理任务。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,在所述执行所述m个待处理任务之后,所述方法还包括:
获取所述每个待处理任务的执行结果;
当所述执行结果指示任务执行成功时,更新所述目标调度任务配置表中执行成功的任务对应的任务调度参数以及将所述调度任务执行表中对应的执行状态调整为执行成功;
当所述执行结果指示任务执行失败时,将所述调度任务执行表中对应的执行状态调整为执行失败,并记录执行失败的原因。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,当所述执行结果指示任务执行失败时,所述方法还包括:
显示所述调度任务执行表中执行状态为执行失败的任务以及执行失败的原因,以提醒相关处理人员处理。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述目标调度任务配置表还包括每个定时任务执行时的资源占用量,若所述m个待处理任务中存在p个待处理任务对应的开始执行时间相同时,所述执行所述m个待处理任务,包括:
根据所述p个待处理任务对应的资源占用量,确定所述p个待处理任务的资源占用量之和;
判断所述资源占用量之和是否超过预设阈值;
若判断出所述资源占用量之和超过所述预设阈值,同时执行所述p个待处理任务。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述目标调度任务配置表还包括:每个定时任务的处理优先级;若所述m个待处理任务中存在x个待处理任务对应的开始执行时间相同时,所述方法还包括:
按照所述处理优先级从高到低的顺序,对所述x个待处理任务进行排序,得到排序结果。
基于所述排序结果,依次执行所述x个待处理任务。
第二方面,本发明实施例提供了一种任务调度装置,所述任务调度装置包括:
第一处理单元,用于接收调度任务配置请求,输出当前调度任务配置表;
获取单元,用于获取针对于所述当前调度任务配置表的操作信息,其中,所述操作信息包括任务调度参数;
生成单元,用于根据所述操作信息中的任务调度参数,生成目标调度任务配置表,所述目标调度任务配置表至少包括:n个定时任务,每个定时任务的执行周期,每个定时任务是否有效标识、开始执行时间;
选择单元,用于从所述目标调度任务配置表中筛选出开始执行时间在当前时间或当前时间之后的、且具有有效标识的m个指定定时任务,并将所述m个指定定时任务作为m个待处理任务;
第二处理单元,用于执行所述m个待处理任务;
其中,n为大于0的整数,m为大于0且小于等于n的整数。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,在所述第二处理单元执行所述m个待处理任务之前,
所述获取单元,还用于从与所述目标调度任务配置表对应的调度任务执行表中获取每个待处理任务的前一次执行状态,所述执行状态包括:执行中,执行失败,执行成功;
其中,所述第二处理单元执行所述m个待处理任务包括:
若当前待处理的第i个待处理任务的前一次执行状态为执行失败,执行第i+1个待处理任务,并将第i+1个待处理任务的执行状态配置为执行中,其中,i为大于0且小于m的整数;
若当前待处理的第i个待处理任务的前一次执行状态为执行中或执行成功,执行所述第i个待处理任务。
第三方面,本发明实施例提供了一种电子终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,所述处理器实现第一方面中任一项所述的任务调度方法。
第四方面,本发明实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机实现第一方面中任一项所述的任务调度方法。
上述技术方案具有如下有益效果:
本发明提供的技术方案,通过接收调度任务配置请求,展示初始调度任务配置表,从而用户通过操作该初始调度任务配置表,设置该初始配置表,得到用户配置的目标调度任务配置表,从所述目标调度任务配置表中筛选出开始执行时间在当前时间或当前时间之后的、且具有有效标识的m个指定定时任务,并将所述m个指定定时任务作为m个待处理任务,执行所述m个待处理任务,如此以来,当Quartz调度控制的任务需要改变时,用户只需要通过操作初始调度任务配置表,得到满足需求的目标调度任务配置表,基于该目标调度任务配置表执行对任务的调度即可,不需要重新编程Quartz调度,减少开关工作量和开发过程中出现的问题,实现灵活增加、修改quartz调度的需求。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例所提供的一种任务调度方法的流程示意图;
图2是本发明实施例所提供的另一种任务调度方法的流程示意图;
图3是本发明实施例所提供的一种任务调度装置的功能框图;
图4是本发明实施例所提供的一种电子终端的功能框图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
针对于现有技术中修改任务执的参数或者新增任务时,需要重新编写Quartz调度,造成开发工作量大,工作效率低的问题,本发明提出一种解决方式,具体的,请参考图1,其为本发明实施例所提供的一种任务调度方法的流程示意图,如图1所示,该方法包括以下步骤:
102、接收调度任务配置请求,输出当前调度任务配置表。
其中,执行本实施例提供的任务调度方法可以是通过终端执行,也可以是通过终端与服务器之间通信实现。例如,如果是通过终端执行的该方法,用户通过终端显示屏显示调度任务配置界面,用户通过操作该调度任务配置界面输入调度任务配置请求,从而终端展示该终端中当前存储的调度任务配置表;或者,例如,如果是终端与服务器之间通信实现的该方法,用户通过操作终端显示屏显示的任务配置界面,触发终端向服务器发送该调度任务配置请求,从而服务器将当前调度任务配置表输出至终端,通过终端的显示屏显示给用户。
104、获取针对于所述当前调度任务配置表的操作信息。其中,操作信息包括任务调度参数。
106、根据操作信息中的任务调度参数,生成目标调度任务配置表,所述目标调度任务配置表至少包括:n个定时任务,每个定时任务的执行周期,每个定时任务是否有效标识、开始执行时间。
目标任务调度配置表是用户根据实现需求对初始调度任务配置表进行删除、增加、修改等操作处理后得到的,用于指导需要调度哪些定时任务,以及,这些定时任务如何调度。
具体的,以执行该任务调度方法的执行主体是终端为例,当终端将该当前调度任务配置表显示给用户,用户得到当前调度任务配置表后,通过外部输入设备执行删除该当前调度任务配置表中某些任务和/或修改当前调度任务配置表中某个任务的执行信息,又或者,在该当前调度任务配置表中增加一些新的任务等操作,从而将需要执行调度的定时任务的任务调度参数输入给终端。也就是说,用户在对当前调度任务配置表进行操作时,同时会产生任务调度参数,终端只需采集针对于所述当前调度任务配置表的操作信息,并对该操作信息进行解析便可以得到对应的任务调度参数,如此一来,便可根据该任务调度参数生成目标调度任务配置表。
示例性的,假设需要增加一条定时采集企业员工信息任务的调度,用户只需要通过操作展示的当前调度任务配置表,根据需求将该定时采集企业员工信息任务的执行周期,有效标识、开始执行时间、该任务对应程序的存储路径等调度参数增加到该当前调度任务配置表(即在当前调度任务配置表对应的脚本文件中配置一条DML语句即可),从而得到包含该定时采集企业员工信息任务的目标调度任务配置表,从而后续基于该目标调度任务配置表执行即可实现控制该定时采集企业员工信息任务的执行。
示例性的,假设需要将步骤102中展示的当前调度任务配置表中包含的定时任务A的执行时间推迟一段时间、定时任务B永不执行,在实现对这2条任务的调度需求时,用户只需要将展示的当前调度任务配置表中定时任务A对应的开始执行时间修改到规定的执行时间,或者,暂时配置失效标识,当达到规定的执行时间时在未其配置有效标识;在实现定时任务B永不执行的操作时,用于可以在该当前调度任务配置表中为定时任务B设置失效标识,或者,直接删除定时任务B对应的调度任务配置信息。
108、从所述目标调度任务配置表中筛选出开始执行时间在当前时间或当前时间之后的、且具有有效标识的m个指定定时任务,并将所述m个指定定时任务作为m个待处理任务。
110、执行所述m个待处理任务。
其中,m为大于0且小于等于n的整数。
由于m个待处理任务为定时任务,每个待处理任务都各自对应的开始执行时间,执行m个待处理任务可以按照开始执行时间的先后顺序依次执行。
另外,为了提高调度这些待处理任务的处理,可以采用多线程调度控制执行待处理的任务。具体的,目标调度任务配置表中还配置有每个定时任务的允许配置线程数,在执行每个待处理任务时,可以基于目标调度任务配置表中的允许配置线程数,配置多个多线程调度控制执行待处理的任务。
本发明提供的技术方案,通过接收调度任务配置请求,展示初始调度任务配置表,从而用户通过操作该初始调度任务配置表,设置该初始配置表,得到用户配置的目标调度任务配置表,从所述目标调度任务配置表中筛选出开始执行时间在当前时间或当前时间之后的、且具有有效标识的m个指定定时任务,并将所述m个指定定时任务作为m个待处理任务,执行所述m个待处理任务,如此以来,当Quartz调度控制的任务需要改变时,用户只需要通过操作初始调度任务配置表,得到满足需求的目标调度任务配置表,基于该目标调度任务配置表执行对任务的调度即可,不需要重新编程Quartz调度,减少开关工作量和开发过程中出现的问题,实现灵活增加、修改quartz调度的需求。
进一步的,为了提高执行待处理任务的效率,本发明还提供了另一种实现方式,如图2所示,在步骤110执行所述m个待处理任务之前,所述方法还包括:
109、从与所述目标调度任务配置表对应的调度任务执行表中获取每个待处理任务的前一次执行状态,所述执行状态包括:执行中,执行失败,执行成功。
其中,调度任务执行表其为一种调度任务处理的日志,主要用于记录每个调度任务的处理情况。
基于每个待处理任务的前一次执行状态的不同情况,针对步骤110执行所述m个待处理任务的实现可以分成两种情况:
1101、若当前待处理的第i个待处理任务的前一次执行状态为执行失败,执行第i+1个待处理任务,并将第i+1个待处理任务的执行状态配置为执行中,其中,i为大于0且小于m的整数。
这里需要说明的是,上述m个待处理任务是定时任务,在确定出当前待处理的第i个待处理任务的前一次执行状态为执行失败时,不会立即去执行第i+1个待处理任务,而是等待当前时间到达第i+1个待处理任务的开始执行时间后,在执行第i+1个待处理任务。
1102、若当前待处理的第i个待处理任务的前一次执行状态为执行中或执行成功,执行所述第i个待处理任务。
可选的是,为了能够及时有效的监控待处理任务的调度情况,在执行完m个待处理任务之后,还需要执行:获取所述每个待处理任务的执行结果,当所述执行结果指示任务执行成功时,更新所述目标调度任务配置表中该执行成功的任务对应的任务调度参数以及将所述调度任务执行表中对应的执行状态调整为执行成功;当所述执行结果指示任务执行失败时,将所述调度任务执行表中对应的执行状态调整为执行失败,并记录执行失败的原因,这里需要补充说明的是,当执行结果指示任务执行失败时,可以对目标调度配置表中的内容不作任何处理。
其中,目标调度任务配置表中包括:每个定时任务的名称和其运行程序的存储路径,每个定时任务的执行周期,每个定时任务是否有效标识、开始执行时间、执行次数等多种调度参数,这些调度参数分为静态参数和动态参数两类,其中,静态参数(如,执行周期,是否有效标识,名称,存储路径)只有在人为干预的情况下才会发生变化,而动态参数(如,开始执行时间、执行次数)会随着该定时任务每次执行情况而改变。具体为:当任务执行成功后,该任务的开始执行时间更新为t1=t0+T,其中t0为目标调度配置表中的开始执行时间t0,T为执行周期;并且当任务执行成功后,调度参数中的执行次数加1。
另外,为了便于查看没给待处理任务的实际完成时间,调度任务执行表中设置有执行结束时间的字段,当待处理任务成功执行后,还需要将时间结束时间记录到该调度任务执行表的执行结束时间的字段中。
进一步来说,为了能够让用户了解到存在执行失败的任务,及时对执行失败的任务进行修正,从而尽可能缩小影响,该方法还包括:显示调度任务执行表中执行状态为执行失败的任务以及执行失败的原因,以提醒相关处理人员处理。
具体的,可以定时扫描调度任务执行表,从该调度任务执行表中筛选出执行状态为执行失败的任务,并从该任务执行表中提取这些执行失败的任务的标识,以及,执行失败的原因;然后,根据提取的标识获取对应的处理人员的通讯地址,基于该通信地址,将执行失败的任务标识和执行失败的原因发送给相关处理人员,以使得相关处理人员对该执行失败的任务及时修正。另外,补充说明的是,在对执行失败的任务进行修正后,还需要将任务执行表中这些任务的执行状态修改为执行成功,这样以来,避免后续再次调用该任务时,由于前一次执行状态为执行失败,而导致为了保证对这些执行失败的任务进行修正后,在后续调用这些任务时,不能正常执行。
可选的是,每个定时任务是独立的,每个定时任务的开始执行时间可能相同,也可能不同,当所述m个待处理任务中存在p个待处理任务对应的开始执行时间相同时,为保证每个待处理任务能够正常执行,提供以下两种实现方式:
第一种,每个终端或服务器具备一定的存储空间、运行空间以及硬件资源,并且终端或服务器运行的任务对这些资源占用量通常远小于终端或服务器本身提供的资源,也就是说,执行本发明提供的任务调度方法的终端或服务器可以运行多个待处理任务,因此,当m个待处理任务中存在p个待处理任务对应的开始执行时间相同时,可以控制这p个待处理任务同时执行。另外,并且考虑到系统稳定性,每个终端或服务器都设置有一个最大允许资源占有量(即资源占用量的预设阈值),同时执行的多个待处理任务对资源占用的总量不能超过该预设阈值。
在上述思想的引导下,第一种方式实现的前提为,目标调度任务配置表还需要包括每个定时任务执行时的资源占用量,当所述m个待处理任务中存在p个待处理任务对应的开始执行时间相同时,第一种方式包括:根据所述p个待处理任务对应的资源占用量,确定所述p个待处理任务的资源占用量之和;判断所述资源占用量之和是否超过预设阈值;其中,该预设阈值即为执行上述调度任务方法的终端或服务器允许提供的最大资源量。若判断出所述资源占用量之和超过所述预设阈值,同时执行所述p个待处理任务。
第二种,可以根据实际需求对每个待处理任务设置处理的优先级,若所述m个待处理任务中存在x个待处理任务对应的开始执行时间相同,可以进一步通过设置的优先级分别对这x个待处理任务进行处理。
在上述思想的引导下,第二种方式实现的前提为,所述目标调度任务配置表还包括:每个定时任务的处理优先级,当所述m个待处理任务中存在x个待处理任务对应的开始执行时间相同时,第二种方式包括:按照所述处理优先级从高到低的顺序,对所述x个待处理任务进行排序,得到排序结果。基于所述排序结果,依次执行所述x个待处理任务。
这里需要说明的是,上述提供的执行m个待处理任务的两种实现方式还可以结合,例如,若m个待处理任务中存在p个待处理任务对应的开始执行时间相同,可以先根据所述p个待处理任务对应的资源占用量,确定所述p个待处理任务同时执行是对应的总资源占用量;然后,判断所述总资源占用量是否超过预设阈值;若判断出所述总资源占用量未超过所述预设阈值,同时执行所述p个待处理任务。若判断出所述总资源占用量超过所述预设阈值,在按照处理优先级从高到低的顺序,对这p个待处理任务进行排序,得到排序结果,基于排序结果,执行这p个待处理任务。
需要说明的是,本发明实施例中所涉及的终端可以包括但不限于个人计算机(PersonalComputer,PC)、个人数字助理(PersonalDigital Assistant,PDA)、无线手持设备、平板电脑(Tablet Computer)、手机等。
需要说明的是,上述步骤的执行主体可以为任务调度装置,该装置可以位于本地终端的应用,或者还可以为位于本地终端的应用中的插件或软件开发工具包(SoftwareDevelopment Kit,SDK)等功能单元,本发明实施例对此不进行特别限定。
可以理解的是,所述应用可以是安装在终端上的应用程序(nativeApp),或者还可以是终端上的浏览器的一个网页程序(webApp),本发明实施例对此不进行限定。
基于上述实施例所提供的任务调度方法,本发明实施例进一步给出实现上述方法实施例中各步骤及方法的装置实施例。
请参考图3,其为本发明实施例所提供的任务调度装置的功能方块图。如图3所示,该装置包括:第一处理单元21,获取单元22,生成单元23,选择单元24,第二处理单元25。其中,第一处理单元21,用于接收调度任务配置请求,展示当前调度任务配置表;获取单元22,用于获取针对于所述当前调度任务配置表的操作信息;生成单元23,用于根据所述操作信息,生成目标调度任务配置表,所述目标调度任务配置表至少包括:n个定时任务,每个定时任务的执行周期,每个定时任务是否有效标识、开始执行时间;选择单元24,用于从所述目标调度任务配置表中筛选出开始执行时间在当前时间或当前时间之后的、且具有有效标识的m个指定定时任务,并将所述m个指定定时任务作为m个待处理任务;第二处理单元25,用于执行所述m个待处理任务;其中,n为大于0的整数,m为大于0且小于等于n的整数。
本发明实施例中,可选的是,在所述第二处理单元25执行所述m个待处理任务之前,所述获取单元22,还用于从与所述目标调度任务配置表对应的调度任务执行表中获取每个待处理任务的前一次执行状态,所述执行状态包括:执行中,执行失败,执行成功。其中,所述第二处理单元25执行所述m个待处理任务包括:若当前待处理的第i个待处理任务的前一次执行状态为执行失败,执行第i+1个待处理任务,并将第i+1个待处理任务的执行状态配置为执行中,其中,i为大于0且小于m的整数;若当前待处理的第i个待处理任务的前一次执行状态为执行中或执行成功,执行所述第i个待处理任务。
本发明实施例中,可选的的是,第二处理单元25执行m个待处理任务过程中,在执行完每个待处理任务之后,第二处理单元25还需要执行:获取所述每个待处理任务的执行结果;当所述执行结果指示任务执行成功时,更新所述目标调度任务配置表中与对应的内容以及将所述调度任务执行表中对应的执行状态调整为执行成功;当所述执行结果指示任务执行失败时,将所述调度任务执行表中对应的执行状态调整为执行失败,并记录执行失败的原因。
本发明实施例中,可选的是,该任务调度装置还包括显示单元(图中未示出),当执行结果指示任务执行失败时,该显示单元用于显示调度任务执行表中执行状态为执行失败的任务以及执行失败的原因,以提醒相关处理人员处理。
本发明实施例中,可选的是,目标调度任务配置表还包括每个定时任务执行时的资源占用量,若m个待处理任务中存在p个待处理任务对应的开始执行时间相同,第二处理单元25执行m个待处理任务,包括:根据所述p个待处理任务对应的资源占用量,确定所述p个待处理任务同时执行是对应的总资源占用量;判断所述总资源占用量是否超过预设阈值;若判断出所述总资源占用量未超过所述预设阈值,同时执行所述p个待处理任务。
本发明实施例中,可选的是,目标调度任务配置表还包括:每个定时任务的处理优先级,第二处理单元25执行m个待处理任务,还包括:按照所述处理优先级从高到低的顺序,对所述x个待处理任务进行排序,得到排序结果基于所述排序结果,依次执行所述x个待处理任务。
这里需要说明的是,上述提供的第二处理单元25执行m个待处理任务的两种实现方式还可以结合,例如,若m个待处理任务中存在p个待处理任务对应的开始执行时间相同,第二处理单元25可以先根据所述p个待处理任务对应的资源占用量,确定所述p个待处理任务同时执行是对应的总资源占用量;然后,判断所述总资源占用量是否超过预设阈值;若判断出所述总资源占用量未超过所述预设阈值,同时执行所述p个待处理任务。若判断出所述总资源占用量超过所述预设阈值,在按照处理优先级从高到低的顺序,对这p个待处理任务进行排序,得到排序结果,基于排序结果,执行这p个待处理任务。
由于本实施例中的各单元能够执行上述所示的任务调度方法,本实施例未详细描述的部分,可参考对上述任务调度方法的相关说明。
基于上述实施例所提供的任务调度方法,本发明实施例进一步给出实现上述方法实施例中各步骤及方法的电子终端。请参考图4,其为本发明实施例所提供的电子终端的功能方块图。如图4所示,该电子终端包括存储器31、处理器32以及存储在所述存储器31中并可在所述处理器32上运行的计算机程序,所述处理器32执行所述计算机程序时,所述处理器32实现上述任一项所述的任务调度方法。
本发明实施例还提供了一种非易失性计算机可读存储介质,其上存储有计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机实现上述任一项所述的任务调度方法。
本发明提供的技术方案,通过接收调度任务配置请求,展示初始调度任务配置表,从而用户通过操作该初始调度任务配置表,设置该初始配置表,得到用户配置的目标调度任务配置表,从所述目标调度任务配置表中筛选出开始执行时间在当前时间或当前时间之后的、且具有有效标识的m个指定定时任务,并将所述m个指定定时任务作为m个待处理任务,执行所述m个待处理任务,如此以来,当Quartz调度控制的任务需要改变时,用户只需要通过操作初始调度任务配置表,得到满足需求的目标调度任务配置表,基于该目标调度任务配置表执行对任务的调度即可,不需要重新编程Quartz调度,减少开关工作量和开发过程中出现的问题,实现灵活增加、修改quartz调度的需求。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种任务调度方法,其特征在于,所述任务调度方法包括:
接收调度任务配置请求,输出当前调度任务配置表;
获取针对于所述当前调度任务配置表的操作信息,其中,所述操作信息包括任务调度参数;
根据所述操作信息中的任务调度参数,生成目标调度任务配置表,所述目标调度任务配置表至少包括:n个定时任务,每个定时任务的执行周期,每个定时任务是否有效标识、开始执行时间;
从所述目标调度任务配置表中筛选出开始执行时间在当前时间或当前时间之后的、且具有有效标识的m个指定定时任务,并将所述m个指定定时任务作为m个待处理任务;
执行所述m个待处理任务;
其中,n为大于0的整数,m为大于0且小于等于n的整数。
2.根据权利要求1所述的方法,其特征在于,在所述执行所述m个待处理任务之前,所述方法还包括:
从与所述目标调度任务配置表对应的调度任务执行表中获取每个待处理任务的前一次执行状态,所述执行状态包括:执行中,执行失败,执行成功;
其中,所述执行所述m个待处理任务包括:
若当前待处理的第i个待处理任务的前一次执行状态为执行失败,执行第i+1个待处理任务,并将第i+1个待处理任务的执行状态配置为执行中,其中,i为大于0且小于m的整数;
若当前待处理的第i个待处理任务的前一次执行状态为执行中或执行成功,执行所述第i个待处理任务。
3.根据权利要求2所述的方法,其特征在于,所述执行所述m个待处理任务之后,所述方法还包括:
获取所述每个待处理任务的执行结果;
当所述执行结果指示任务执行成功时,更新所述目标调度任务配置表中执行成功的任务对应的任务调度参数以及将所述调度任务执行表中对应的执行状态调整为执行成功;
当所述执行结果指示任务执行失败时,将所述调度任务执行表中对应的执行状态调整为执行失败,并记录执行失败的原因。
4.根据权利要求3所述的方法,其特征在于,当所述执行结果指示任务执行失败时,所述方法还包括:
显示所述调度任务执行表中执行状态为执行失败的任务以及执行失败的原因,以提醒相关处理人员处理。
5.根据权利要求1所述的方法,其特征在于,所述目标调度任务配置表还包括每个定时任务执行时的资源占用量,若所述m个待处理任务中存在p个待处理任务对应的开始执行时间相同时,所述执行所述m个待处理任务,包括:
根据所述p个待处理任务对应的资源占用量,确定所述p个待处理任务的资源占用量之和;
判断所述资源占用量之和是否超过预设阈值;
若判断出所述资源占用量之和未超过所述预设阈值,同时执行所述p个待处理任务。
6.根据权利要求1或5所述的方法,其特征在于,所述目标调度任务配置表还包括:每个定时任务的处理优先级;若所述m个待处理任务中存在x个待处理任务对应的开始执行时间相同时,所述方法还包括:
按照所述处理优先级从高到低的顺序,对所述x个待处理任务进行排序,得到排序结果。
基于所述排序结果,依次执行所述x个待处理任务。
7.一种任务调度装置,其特征在于,所述任务调度装置包括:
第一处理单元,用于接收调度任务配置请求,输出当前调度任务配置表;
获取单元,用于获取针对于所述当前调度任务配置表的操作信息,其中,所述操作信息包括任务调度参数;
生成单元,用于根据所述操作信息中的任务调度参数,生成目标调度任务配置表,所述目标调度任务配置表至少包括:n个定时任务,每个定时任务的执行周期,每个定时任务是否有效标识、开始执行时间;
选择单元,用于从所述目标调度任务配置表中筛选出开始执行时间在当前时间或当前时间之后的、且具有有效标识的m个指定定时任务,并将所述m个指定定时任务作为m个待处理任务;
第二处理单元,用于执行所述m个待处理任务;
其中,n为大于0的整数,m为大于0且小于等于n的整数。
8.根据权利要求7所述的方法,其特征在于,在所述第二处理单元执行所述m个待处理任务之前,
所述获取单元,还用于从与所述目标调度任务配置表对应的调度任务执行表中获取每个待处理任务的前一次执行状态,所述执行状态包括:执行中,执行失败,执行成功;
其中,所述第二处理单元执行所述m个待处理任务包括:
若当前待处理的第i个待处理任务的前一次执行状态为执行失败,执行第i+1个待处理任务,并将第i+1个待处理任务的执行状态配置为执行中,其中,i为大于0且小于m的整数;
若当前待处理的第i个待处理任务的前一次执行状态为执行中或执行成功,执行所述第i个待处理任务。
9.一种电子终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,所述处理器实现如权利要求1-6任一项所述的任务调度方法。
10.一种非易失性计算机可读存储介质,其上存储有计算机可读指令,其特征在于,当计算机读取并执行所述计算机可读指令时,使得计算机实现如权利要求1-6任一项所述的任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910048680.7A CN109901920A (zh) | 2019-01-18 | 2019-01-18 | 任务调度方法及装置、电子终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910048680.7A CN109901920A (zh) | 2019-01-18 | 2019-01-18 | 任务调度方法及装置、电子终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109901920A true CN109901920A (zh) | 2019-06-18 |
Family
ID=66943803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910048680.7A Pending CN109901920A (zh) | 2019-01-18 | 2019-01-18 | 任务调度方法及装置、电子终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109901920A (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110262890A (zh) * | 2019-06-28 | 2019-09-20 | 百度在线网络技术(北京)有限公司 | 一种信息询问式推送的处理方法、装置及存储介质 |
CN110428453A (zh) * | 2019-07-30 | 2019-11-08 | 深圳云天励飞技术有限公司 | 数据处理方法、装置、数据处理设备及存储介质 |
CN110611707A (zh) * | 2019-09-05 | 2019-12-24 | 深圳前海微众银行股份有限公司 | 一种任务调度的方法及装置 |
CN110673940A (zh) * | 2019-09-27 | 2020-01-10 | 杭州迪普科技股份有限公司 | 应用程序的任务执行方法及装置、电子设备、存储介质 |
CN110968590A (zh) * | 2019-12-23 | 2020-04-07 | 北京奇艺世纪科技有限公司 | 任务执行方法、装置、电子设备及计算机可读存储介质 |
CN111428974A (zh) * | 2020-03-12 | 2020-07-17 | 泰康保险集团股份有限公司 | 审计稽核作业调度方法和装置 |
CN111552545A (zh) * | 2020-04-15 | 2020-08-18 | 北京宝兰德软件股份有限公司 | 任务的执行处理方法、装置、电子设备及存储介质 |
CN111580942A (zh) * | 2020-03-30 | 2020-08-25 | 深圳壹账通智能科技有限公司 | 分布式系统定时任务的处理方法、装置及存储介质 |
CN111679898A (zh) * | 2020-06-08 | 2020-09-18 | 中国银行股份有限公司 | 定时任务的调度方法、装置、计算机设备及可读存储介质 |
CN111708625A (zh) * | 2020-06-16 | 2020-09-25 | 中国建设银行股份有限公司 | 多用户任务执行方法、装置、设备及存储介质 |
CN112068940A (zh) * | 2020-09-02 | 2020-12-11 | 微医云(杭州)控股有限公司 | 实时任务调度方法、装置、调度系统及存储介质 |
CN112181619A (zh) * | 2020-09-23 | 2021-01-05 | 中国建设银行股份有限公司 | 批量业务的调度方法、装置、设备及介质 |
CN112367205A (zh) * | 2020-11-12 | 2021-02-12 | 深圳前海微众银行股份有限公司 | 一种对http调度请求的处理方法及调度系统 |
CN112612612A (zh) * | 2020-12-25 | 2021-04-06 | 联想未来通信科技(重庆)有限公司 | 一种任务处理方法及装置 |
CN113064704A (zh) * | 2021-03-18 | 2021-07-02 | 北京沃东天骏信息技术有限公司 | 任务处理方法、装置、电子设备和计算机可读介质 |
CN113204419A (zh) * | 2021-05-26 | 2021-08-03 | 深圳市领星网络科技有限公司 | 一种超大规模任务调度分发处理方法、系统及计算机可读存储介质 |
CN113342493A (zh) * | 2021-06-15 | 2021-09-03 | 上海哔哩哔哩科技有限公司 | 任务执行方法、装置及计算机设备 |
CN113485814A (zh) * | 2021-07-27 | 2021-10-08 | 中国银行股份有限公司 | 批量任务调度方法及装置 |
CN113742044A (zh) * | 2021-09-09 | 2021-12-03 | 平安科技(深圳)有限公司 | 定时任务管理方法、装置、设备及存储介质 |
CN115168137A (zh) * | 2022-06-17 | 2022-10-11 | 北京结慧科技有限公司 | 针对定时任务的监控方法及系统、计算机设备及存储介质 |
CN115391052A (zh) * | 2022-10-26 | 2022-11-25 | 上海擎朗智能科技有限公司 | 一种机器人任务处理方法、装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981904A (zh) * | 2011-09-02 | 2013-03-20 | 阿里巴巴集团控股有限公司 | 一种任务调度方法及系统 |
CN106227596A (zh) * | 2016-07-13 | 2016-12-14 | 百度在线网络技术(北京)有限公司 | 用于任务调度服务器的任务监控方法和装置 |
CN107957903A (zh) * | 2017-11-13 | 2018-04-24 | 中国平安财产保险股份有限公司 | 异步任务调度方法、服务器及存储介质 |
-
2019
- 2019-01-18 CN CN201910048680.7A patent/CN109901920A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981904A (zh) * | 2011-09-02 | 2013-03-20 | 阿里巴巴集团控股有限公司 | 一种任务调度方法及系统 |
CN106227596A (zh) * | 2016-07-13 | 2016-12-14 | 百度在线网络技术(北京)有限公司 | 用于任务调度服务器的任务监控方法和装置 |
CN107957903A (zh) * | 2017-11-13 | 2018-04-24 | 中国平安财产保险股份有限公司 | 异步任务调度方法、服务器及存储介质 |
Non-Patent Citations (1)
Title |
---|
饭一碗: "使用Quartz实现定时任务(包含管理界面)", 《CSDN博客:HTTPS://BLOG.CSDN.NET/FANRENXIANG/ARTICLE/DETAILS/85539918》 * |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110262890A (zh) * | 2019-06-28 | 2019-09-20 | 百度在线网络技术(北京)有限公司 | 一种信息询问式推送的处理方法、装置及存储介质 |
CN110428453A (zh) * | 2019-07-30 | 2019-11-08 | 深圳云天励飞技术有限公司 | 数据处理方法、装置、数据处理设备及存储介质 |
CN110428453B (zh) * | 2019-07-30 | 2020-12-15 | 深圳云天励飞技术有限公司 | 数据处理方法、装置、数据处理设备及存储介质 |
CN110611707A (zh) * | 2019-09-05 | 2019-12-24 | 深圳前海微众银行股份有限公司 | 一种任务调度的方法及装置 |
CN110673940A (zh) * | 2019-09-27 | 2020-01-10 | 杭州迪普科技股份有限公司 | 应用程序的任务执行方法及装置、电子设备、存储介质 |
CN110968590A (zh) * | 2019-12-23 | 2020-04-07 | 北京奇艺世纪科技有限公司 | 任务执行方法、装置、电子设备及计算机可读存储介质 |
CN111428974A (zh) * | 2020-03-12 | 2020-07-17 | 泰康保险集团股份有限公司 | 审计稽核作业调度方法和装置 |
CN111580942A (zh) * | 2020-03-30 | 2020-08-25 | 深圳壹账通智能科技有限公司 | 分布式系统定时任务的处理方法、装置及存储介质 |
CN111552545A (zh) * | 2020-04-15 | 2020-08-18 | 北京宝兰德软件股份有限公司 | 任务的执行处理方法、装置、电子设备及存储介质 |
CN111679898A (zh) * | 2020-06-08 | 2020-09-18 | 中国银行股份有限公司 | 定时任务的调度方法、装置、计算机设备及可读存储介质 |
CN111708625A (zh) * | 2020-06-16 | 2020-09-25 | 中国建设银行股份有限公司 | 多用户任务执行方法、装置、设备及存储介质 |
CN112068940A (zh) * | 2020-09-02 | 2020-12-11 | 微医云(杭州)控股有限公司 | 实时任务调度方法、装置、调度系统及存储介质 |
CN112181619A (zh) * | 2020-09-23 | 2021-01-05 | 中国建设银行股份有限公司 | 批量业务的调度方法、装置、设备及介质 |
CN112181619B (zh) * | 2020-09-23 | 2024-07-30 | 中国建设银行股份有限公司 | 批量业务的调度方法、装置、设备及介质 |
CN112367205A (zh) * | 2020-11-12 | 2021-02-12 | 深圳前海微众银行股份有限公司 | 一种对http调度请求的处理方法及调度系统 |
CN112367205B (zh) * | 2020-11-12 | 2023-04-18 | 深圳前海微众银行股份有限公司 | 一种对http调度请求的处理方法及调度系统 |
CN112612612A (zh) * | 2020-12-25 | 2021-04-06 | 联想未来通信科技(重庆)有限公司 | 一种任务处理方法及装置 |
CN113064704A (zh) * | 2021-03-18 | 2021-07-02 | 北京沃东天骏信息技术有限公司 | 任务处理方法、装置、电子设备和计算机可读介质 |
CN113204419A (zh) * | 2021-05-26 | 2021-08-03 | 深圳市领星网络科技有限公司 | 一种超大规模任务调度分发处理方法、系统及计算机可读存储介质 |
CN113342493A (zh) * | 2021-06-15 | 2021-09-03 | 上海哔哩哔哩科技有限公司 | 任务执行方法、装置及计算机设备 |
CN113485814A (zh) * | 2021-07-27 | 2021-10-08 | 中国银行股份有限公司 | 批量任务调度方法及装置 |
CN113742044A (zh) * | 2021-09-09 | 2021-12-03 | 平安科技(深圳)有限公司 | 定时任务管理方法、装置、设备及存储介质 |
CN115168137A (zh) * | 2022-06-17 | 2022-10-11 | 北京结慧科技有限公司 | 针对定时任务的监控方法及系统、计算机设备及存储介质 |
CN115391052A (zh) * | 2022-10-26 | 2022-11-25 | 上海擎朗智能科技有限公司 | 一种机器人任务处理方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109901920A (zh) | 任务调度方法及装置、电子终端 | |
CN106802826B (zh) | 一种基于线程池的业务处理方法及装置 | |
US8156499B2 (en) | Methods, systems and articles of manufacture for scheduling execution of programs on computers having different operating systems | |
CN109582466A (zh) | 一种定时任务执行方法、分布式服务器集群及电子设备 | |
CN109684054A (zh) | 信息处理方法及装置、电子设备及存储器 | |
CN105700937A (zh) | 多线程任务处理方法和装置 | |
CN110489217A (zh) | 一种任务调度方法及系统 | |
US20050097556A1 (en) | Intelligent scheduler for multi-level exhaustive scheduling | |
WO2023198061A1 (zh) | 一种容器调度方法、电子设备和存储介质 | |
US20100153957A1 (en) | System and method for managing thread use in a thread pool | |
CN109960589B (zh) | 嵌入式系统的系统软件层的实现方法、装置及可读介质 | |
CN110262878B (zh) | 定时任务处理方法、装置、设备及计算机可读存储介质 | |
CN109634730A (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN112910937B (zh) | 容器集群中的对象调度方法、装置、服务器和容器集群 | |
CN112463535A (zh) | 多集群异常处理方法及装置 | |
CN111274019A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN101964725A (zh) | 业务不中断升级的方法和系统 | |
EP3945420A1 (en) | Method and apparatus for data processing, server and storage medium | |
CN111767125B (zh) | 任务执行方法、装置、电子设备、存储介质 | |
WO2019029721A1 (zh) | 任务的调度方法、装置、设备及存储介质 | |
WO2023151498A1 (zh) | 一种消息执行处理方法、装置、电子设备和存储介质 | |
CN116841758A (zh) | 工作流任务处理方法、装置、计算机设备和存储介质 | |
CN106302125A (zh) | 一种对请求信息进行响应的方法、装置及系统 | |
CN109190969A (zh) | 称重设备管控方法、系统、称重设备管理中间件及介质 | |
CN115439250A (zh) | 一种交易请求的处理方法及装置、存储介质、电子装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190618 |