一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种定时任务的启动方法、装置及电子设备与流程

2022-12-20 02:25:03 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,尤其涉及一种定时任务的启动方法、装置及电子设备。


背景技术:

2.随着数据处理技术的发展,通常应用程序中存在多个定时任务,该定时任务为在指定时间内触发执行的某个操作,由于应用程序中存在多种类型的定时任务,每一种类型的定时任务对应的可执行定时任务至少为一个,因此,当应用程序执行某一功能时,需要执行该功能对应的多个定时任务。
3.目前,在执行上述功能对应的多个定时任务时,采用的方法为将所有需要执行的定时任务进行排序,按照设置好的排序依次执行定时任务,在每一个定时任务执行结束之后,需要触发指令指示下一个定时任务开始执行,直至遍历每一个定时任务。
4.基于上述描述的方法,当需要执行的定时任务中存在多个相同指定时间执行的定时任务时,仍然按照上述的排序依次执行,比如:t时刻需要执行定时任务a、定时任务b、定时任务c,定时任务的排序为a、b、c,t时刻时只能执行定时任务a,只能等待定时任务a执行结束之后,再依次执行定时任务b和定时任务c,按照上述的执行顺序将造成定时任务不能按照指定时间执行,进而导致系统在不停止运行的情况下无法对定时任务的指定时间进行自动更新。


技术实现要素:

5.本技术实施例提供了一种定时任务的启动方法、装置及电子设备,用于确保定时任务在指定时间执行,以及提高定时任务的执行速度。
6.第一方面,本技术提供了一种定时任务的启动方法,所述方法包括:
7.获得n个定时任务各自的启动时间,其中,n为不小于2的正整数;
8.从所述n个定时任务中提取出满足预设执行条件的m个定时任务,其中,m为小于n的正整数;
9.基于预设定时任务与线程数量的对应关系,确定出所述m个定时任务中各个定时任务各自对应的实际线程总数;
10.响应于当前时间与所述启动时间一致,控制各个实际线程总数的线程并行执行各自对应的定时任务。
11.通过上述的方法,从n个定时任务中确定出m个定时任务,再确定出m个定时任务中每一个定时任务对应的实际线程总数,控制各个实际线程总数的线程执行对应的定时任务,从而确保了定时任务在启动时间时启动,以及提高了定时任务的执行速度,确保了系统在不停止运行的情况下能够自动更新定时任务的启动时间。
12.在一种可能的设计中,获得n个定时任务各自的启动时间之前,包括:
13.获得配置启动信息的定时任务,以及获得至少一个预设接口的接口类型,其中,所
述启动信息包括定时任务类型、启动时间、以及执行时间;
14.控制所述预设接口筛选出与所述接口类型一致的至少一个定时任务;
15.基于各个预设接口分别确定出的至少一个定时任务生成预设数据库;
16.从所述预设数据库中提取出n个定时任务以及n个定时任务各自对应的启动时间。
17.通过上述的方法,基于各个定时任务生成预设数据库,确保了能够基于预设数据库实现实时任务的配置,避免在程序层面进行操作,提高了配置定时任务的便捷性,保证了系统运行的流畅性。
18.在一种可能的设计中,从n个定时任务中提取出满足预设执行条件的m个定时任务,包括:
19.提取出n个定时任务中启动时间与预设启动时间一致的至少一个第一定时任务,并将所述至少一个第一定时任务作为m个定时任务;和/或
20.提取出n个定时任务中数据包不为空的至少一个第二定时任务,并将所述第二定时任务作为m个定时任务;和/或
21.提取出n个定时任务中与预设定时任务类型一致的至少一个第三定时任务,并将所述第三定时任务作为m个定时任务。
22.通过上述的方法,从n个定时任务中获得m个定时任务,能够基于不同的条件对定时任务进行筛选,能够筛选出满足预设执行条件的定时任务,使得能够使用于更多的场景。
23.在一种可能的设计中,基于预设定时任务与线程数量的对应关系,确定出m个定时任务中各个定时任务各自对应的实际线程总数,包括:
24.将m个定时任务中的各个定时任务分别与预设定时任务进行匹配,分别确定出匹配出的预设定时任务各自对应的线程数量;
25.将各个线程数量分别作为对应的所述m个定时任务中各个定时任务的实际线程总数。
26.通过上述的方法,使得m个定时任务中每一个定时任务都对应的一个实际线程总数,当执行定时任务时,能够使得多个定时任务并行执行,提高了定时任务的执行效率。
27.第二方面,本技术提供了一种定时任务的启动装置,所述装置包括:
28.获得模块,用于获得n个定时任务各自的启动时间;
29.提取模块,用于从所述n个定时任务中提取出满足预设执行条件的m个定时任务;
30.确定模块,用于基于预设定时任务与线程数量的对应关系,确定出所述m个定时任务中各个定时任务各自对应的实际线程总数;
31.控制模块,用于响应于当前时间与所述启动时间一致,控制各个实际线程总数的线程并行执行各自对应的定时任务。
32.在一种可能的设计中,所述获得模块,具体用于获得配置启动信息的定时任务,以及获得至少一个预设接口的接口类型,控制所述预设接口筛选出与所述接口类型一致的至少一个定时任务,基于各个预设接口分别确定出的至少一个定时任务生成预设数据库,从所述预设数据库中提取出n个定时任务以及n个定时任务各自对应的启动时间。
33.在一种可能的设计中,所述提取模块,具体用于提取出n个定时任务中启动时间与预设启动时间一致的至少一个第一定时任务,并将所述至少一个第一定时任务作为m个定时任务,提取出n个定时任务中数据包不为空的至少一个第二定时任务,并将所述第二定时
任务作为m个定时任务,提取出n个定时任务中与预设定时任务类型一致的至少一个第三定时任务,并将所述第三定时任务作为m个定时任务。
34.在一种可能的设计中,所述确定模块,具体用于将m个定时任务中的各个定时任务分别与预设定时任务进行匹配,分别确定出匹配出的预设定时任务各自对应的线程数量,将各个线程数量分别作为对应的所述m个定时任务中各个定时任务的实际线程总数。
35.第三方面,本技术提供了一种电子设备,包括:
36.存储器,用于存放计算机程序;
37.处理器,用于执行所述存储器上所存放的计算机程序时,实现上述的一种定时任务的启动装方法步骤。
38.第四方面,一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的一种定时任务的启动装方法步骤。
39.上述第一方面至第四方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
40.图1为本技术提供的一种确定分割线的方法步骤的流程图;
41.图2为本技术提供的一种确定分割线的装置的结构示意图;
42.图3为本技术提供的一种电子设备的结构示意图。
具体实施方式
43.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。需要说明的是,在本技术的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。a与b连接,可以表示:a与b直接连接和a与b通过c连接这两种情况。另外,在本技术的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
44.在以往的技术中,在执行应用程序的某个功能时,需要执行该功能对应的多个定时任务,在执行该多个定时任务时,采用的方法为将多个定时任务进行排序,并按照设置好的排序依次执行定时任务,在每一个定时任务执行结束之后,需要触发指令指示下一个定时任务开始执行,直至遍历完所有的定时任务,但是,当多个定时任务中存在相同指定时间执行的定时任务时,仍然按照上述的排序依次执行,由于多个定时任务执行完成的时间过长,将无法确保定时任务按照规定的指定时间执行,当系统在不停止运行的情况下将无法对定时任务的指定时间进行更新。
45.为了解决上述问题,本技术实施例提供了一种定时任务的启动方法,用于确保定时任务能够按照指定时间执行任务,从而提高定时任务的执行速度,以及当系统在不停止运行的情况下实现对定时任务的指定时间进行更新。其中,本技术实施例所述方法和装置基于同一技术构思,由于方法及装置所解决问题的原理相似,因此装置与方法的实施例可
以相互参见,重复之处不再赘述。
46.下面结合附图,对本技术实施例进行详细描述。
47.参照图1,本技术提供了一种定时任务的启动方法,该方法可以确保定时任务能够在指定时间内执行,以及提升定时任务的执行速度,该方法的实现流程如下:
48.步骤s1:获得n个定时任务各自的启动时间。
49.本技术实施例是为了能够实现灵活改动定时任务,避免在代码层面进行频繁操作,需要将定时任务存储至预设数据库中,首先,需要确定出至少一个预设接口的接口类型,通过确定出的接口类型筛选出与接口类型一致的至少一个定时任务,筛选出的定时任务与接口类型的关系具体如下表1:
[0050][0051]
表1
[0052]
上述表1中记录了各个接口类型各自对应的至少一个定时任务,在表1中列举了a接口类型对应的定时任务1与定时任务2,以及b接口类型对应的定时任务3、定时任务6、定时任务7,每一种接口类型对应的定时任务至少为一个,其他接口类型各自对应的定时任务的存储形式参考上述表1中的例子,表1中的接口类型可以基于接口的端口号进行分类,也可以基于接口接收的定时任务的任务类型进行分类,该任务类型可以为删除程序、恢复历史记录等,定时任务能够基于实际应用程序的功能进行调整,以及基于实际计算机设备进行调整,这里不作过多说明。
[0053]
基于上述表1确定出各个预设接口对应的定时任务,以及,获得各个定时任务的配置信息,该配置信息包括定时任务的类型、启动时间以及执行时间,再基于获得的各个定时任务以及各个定时任务的启动信息生成预设数据库,生成预设数据库之后,从预设数据库中提取出n个定时任务以及n个定时任务的启动时间,n为不小于2的整数。
[0054]
需要进行说明的是,定时任务的启动时间如表2所示:
[0055][0056]
表2
[0057]
上述表2中记录了定时任务中的启动时间,基于表2可知,启动时间可用不同的字符在定时任务中进行标记,不同的字符对应着不同的说明,上述表2中列举了各个字符对应的举例,上述例子中的时间可根据实际情况进行调整,上述只是作为举例,其他字符对应的说明以及举例参考上述表2中的任一例子,这里不作过多阐述。
[0058]
进一步,当预设数据库中的定时任务需要进行增加或者删除时,直接在预设数据库中加入新增定时任务,或者直接删除定时任务;当需要对预设数据库中的定时任务的启动时间或者执行时间进行修改时,可以通过预设接口连接其他设备或者其他数据库对定时任务的启动时间或者执行时间进行修改。
[0059]
通过上述的方法,基于预设数据库获得n个定时任务的启动时间,实现从预设数据库中直接提取出定时任务,并且,能够通过预设接口采集或者访问定时任务的方式,将代码层面的操作转换为数据库层面的操作,提高了获得定时任务以及修改定时任务的便捷性。
[0060]
步骤s2:从所述n个定时任务中提取出满足预设执行条件的m个定时任务。
[0061]
从预设数据库获得n个定时任务之后,为了确保预设数据库中的每一个定时任务对应的数据包都不为空,以及每一个定时任务都配置了启动时间,需要从n个定时任务中提取出满足预设执行条件的m个定时任务,m为小于n的正整数,具体的预设执行条件如下:
[0062]
条件一:将各个定时任务存储至预设数据库之后,由于定时任务配置了启动时间,该启动时间包括:年份、月份、日期、小时、分钟、秒数,为了筛选出与预设启动时间一致的定时任务,需要提取出与预设启动时间一致的至少一个第一定时任务,并将获得的至少一个第一定时任务作为m个定时任务。
[0063]
比如:预设启动时间为2022年8月24日12时18分13秒,将预设数据库中的n个定时任务的启动时间与上述列举的时间进行匹配,当匹配出所有一致的启动时间后,确定出与该预设启动时间一致的所有定时任务,并将确定出的所有定时任务作为m个定时任务。
[0064]
条件二:为了防止数据包为空的定时任务,需要从n个定时任务中提取出数据包不为空第二定时任务,并将所有的第二定时任务作为m个定时任务。
[0065]
比如:现有定时任务a、定时任务b、定时任务c、定时任务d,其中,定时任务a与定时任务c的数据包为空,筛选出定时任务b与定时任务d,并将定时任务b、定时任务d作为第二定时任务。
[0066]
条件三:由于定时任务的任务类型多样,因此,能够确定出n个定时任务中每一个定时任务的任务类型,将n个任务类型与预设任务类型进行匹配,将与预设任务类型一致的定时任务作为第三定时任务,并将确定出的所有第三定时任务作为从n个定时任务中筛选
出的m个定时任务。
[0067]
比如:预设任务类型为a,定时任务1的任务类型为a,定时任务2的任务类型为c,定时任务3的任务类型为e,定时任务4的任务类型为a,将各个定时任务的任务类型与预设任务类型进行匹配,确定出定时任务1与定时任务4为第三定时任务。
[0068]
需要进行说明的是,预设执行条件可以是上述条件一、条件二、条件三之间进行任意组合之后的条件,这里不作过多说明。
[0069]
通过上述的方法,通过预设执行条件从n个定时任务中筛选出m个定时任务,根据不同的实际场景可设置不同的条件,使得确定出m个定时任务的方式更加灵活。
[0070]
步骤s3:基于预设定时任务与线程数量的对应关系,确定出所述m个定时任务中各个定时任务各自对应的实际线程总数。
[0071]
确定出m个定时任务之后,为了提高定时任务的执行效率,需要确定出预设定时任务与线程数量的对应关系,具体对应关系如表3所示:
[0072]
预设定时任务线程数量预设定时任务a2预设定时任务b5预设定时任务c7
ꢀ……
[0073]
表3
[0074]
上述表3中记录了预设定时任务分别对应的线程数量,表3中只列举了3个预设定时任务各自对应的线程数量,线程数量可根据预设定时任务执行时所需要的线程数量进行调整,这里只是作为举例说明,其他预设定时任务各自对应的线程数量参考上述表3,这里不作具体阐述。
[0075]
基于上述表3,将m个定时任务中的每一个定时任务分别与表3中的预设定时任务进行匹配,当匹配上表3中的预设定时任务之后,确定出匹配出的预设定时任务对应的线程数量,重复上述流程,直至遍历上述m个定时任务,再确定出m个定时任务中各个定时任务各自对应的线程数量,并将各个线程数量分别作为对应的定时任务的实际线程总数。
[0076]
通过上述方法,确定出执行定时任务的实际线程总数,避免了单线程执行定时任务造成的执行定时任务时间过长的问题,有利于提高定时任务的执行效率。
[0077]
步骤s4:响应于当前时间与所述启动时间一致,控制各个实际线程总数的线程并行执行各自对应的定时任务。
[0078]
确定出m个定时任务中每一个定时任务对应的实际线程总数之后,由于上述描述的定时任务的启动时间可以为定时器中设置的时间,也可以为服务器中设置的时间,当服务器中未设置定时任务的启动时间时,定时任务的启动时间由定时器中设置的时间确定。
[0079]
由于定时任务中指示了启动时间,为了确保在启动时间时启动定时任务,需要获得当前时间,当当前时间与定时任务的启动时间一致时,确定出该定时任务对应的实际线程总数,并控制该实际线程总数的线程执行该定时任务,由于定时任务的数量为m个,因此,能够并行执行各个定时任务。
[0080]
需要进行说明的是,当m个定时任务启动之后,每一个定时任务还设置有执行时间,执行时间规定了定时任务从启动至执行结束的时间,该执行时间能够根据实际情况进
行调整,这里不作过多说明。
[0081]
基于上述的描述,通过预设接口采集到各个定时任务,并基于各个定时任务生成预设数据库,再从n个定时任务中筛选出m个定时任务,实现了定时任务的选择配置,将适用于更多的实际场景,再基于实际线程总数的线程执行对应的定时任务,提高了定时任务的执行速度,以及确保了系统在不停止运行的情况下能够实现对定时任务的自动更新。
[0082]
基于同一发明构思,本技术实施例中还提供了一种定时任务的启动装置,该定时任务的启动装置用于实现了一种定时任务的启动方法的功能,参照图2,所述装置包括:
[0083]
获得模块201,用于获得n个定时任务各自的启动时间;
[0084]
提取模块202,用于从所述n个定时任务中提取出满足预设执行条件的m个定时任务;
[0085]
确定模块203,用于基于预设定时任务与线程数量的对应关系,确定出所述m个定时任务中各个定时任务各自对应的实际线程总数;
[0086]
控制模块204,用于响应于当前时间与所述启动时间一致,控制各个实际线程总数的线程并行执行各自对应的定时任务。
[0087]
在一种可能的设计中,所述获得模块201,具体用于获得配置启动信息的定时任务,以及获得至少一个预设接口的接口类型,控制所述预设接口筛选出与所述接口类型一致的至少一个定时任务,基于各个预设接口分别确定出的至少一个定时任务生成预设数据库,从所述预设数据库中提取出n个定时任务以及n个定时任务各自对应的启动时间。
[0088]
在一种可能的设计中,所述提取模块202,具体用于提取出n个定时任务中启动时间与预设启动时间一致的至少一个第一定时任务,并将所述至少一个第一定时任务作为m个定时任务,提取出n个定时任务中数据包不为空的至少一个第二定时任务,并将所述第二定时任务作为m个定时任务,提取出n个定时任务中与预设定时任务类型一致的至少一个第三定时任务,并将所述第三定时任务作为m个定时任务。
[0089]
在一种可能的设计中,所述确定模块203,具体用于将m个定时任务中的各个定时任务分别与预设定时任务进行匹配,分别确定出匹配出的预设定时任务各自对应的线程数量,将各个线程数量分别作为对应的所述m个定时任务中各个定时任务的实际线程总数。
[0090]
基于同一发明构思,本技术实施例中还提供了一种电子设备,所述电子设备可以实现前述一种定时任务的启动装置的功能,参考图3,所述电子设备包括:
[0091]
至少一个处理器301,以及与至少一个处理器301连接的存储器302,本技术实施例中不限定处理器301与存储器302之间的具体连接介质,图3中是以处理器301和存储器302之间通过总线300连接为例。总线300在图3中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线300可以分为地址总线、数据总线、控制总线等,为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器301也可以称为控制器,对于名称不做限制。
[0092]
在本技术实施例中,存储器302存储有可被至少一个处理器301执行的指令,至少一个处理器301通过执行存储器302存储的指令,可以执行前文论述的一种定时任务的启动方法。处理器301可以实现图2所示的装置中各个模块的功能。
[0093]
其中,处理器301是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器302内的指令以及调用存储在存储器302内
的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
[0094]
在一种可能的设计中,处理器301可包括一个或多个处理单元,处理器301可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器301中。在一些实施例中,处理器301和存储器302可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
[0095]
处理器301可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的一种定时任务的启动方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0096]
存储器302作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器302可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等等。存储器302是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器302还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
[0097]
通过对处理器301进行设计编程,可以将前述实施例中介绍的一种定时任务的启动方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图1所示的实施例的一种定时任务的启动步骤。如何对处理器301进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
[0098]
基于同一发明构思,本技术实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述的一种定时任务的启动方法。
[0099]
在一些可能的实施方式中,本技术提供一种定时任务的启动方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该控制设备执行本说明书上述描述的根据本技术各种示例性实施方式的一种定时任务的启动方法中的步骤。
[0100]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0101]
本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或
方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0102]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0103]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0104]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献