CN107562529A - 一种业务系统中定时任务的实现方法及装置 - Google Patents
一种业务系统中定时任务的实现方法及装置 Download PDFInfo
- Publication number
- CN107562529A CN107562529A CN201711000898.2A CN201711000898A CN107562529A CN 107562529 A CN107562529 A CN 107562529A CN 201711000898 A CN201711000898 A CN 201711000898A CN 107562529 A CN107562529 A CN 107562529A
- Authority
- CN
- China
- Prior art keywords
- task
- trigger
- timed task
- timed
- parameters
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种业务系统中定时任务的实现方法及装置,涉及业务系统架构技术。本发明公开的业务系统中定时任务的实现装置,至少包括任务执行单元、触发器单元和定时器单元:触发器单元,根据预先接收的触发器参数,构建待执行的定时任务的触发器,并将构建的触发器与执行该定时任务的任务执行单元进行绑定,在收到定时器单元的触发时,触发与已构建的触发器绑定的任务执行单元执行对应的定时任务;定时器单元,在触发器单元与执行定时任务的任务执行单元进行绑定后,启动定时器,确定定时任务的执行时间,并在定时任务的执行时间到达时触发触发器单元。
Description
技术领域
本发明涉及业务系统架构技术,尤其涉及一种业务系统中通用的定时任务的实现方案。
背景技术
在企业业务系统中,常常需要非人工方式执行某些具体的任务,比如云计算平台中为云主机创建快照、备份磁盘数据等.用户希望通过在系统中创建这样的任务,并为这个任务指定执行时间或计划,在某个时刻执行,或者周期性执行。而目前很多应用采用复杂框架,或者侵入性设计的方式解决以上问题,效率和可维护性都存在一定的弊端。
发明内容
本文提供一种业务系统中定时任务的实现方法及装置,可以解决相关技术中业务系统中定时任务的执行效率和维护效率都很低的问题。
本文公开了一种业务系统中定时任务的实现装置,至少包括任务执行单元、触发器单元和定时器单元:
所述任务执行单元,读取预先接收的任务参数,根据所接收到的任务参数生成对应的定时任务调度器,并在收到触发器单元的触发时,调用对应的定时任务调度器执行任务;
所述触发器单元,根据预先接收的触发器参数,构建待执行的定时任务的触发器,并将构建的触发器与执行该定时任务的任务执行单元进行绑定,以及在收到所述定时器单元的触发时,触发与已构建的触发器绑定的任务执行单元执行对应的定时任务;
所述定时器单元,在所述触发器单元与执行定时任务的任务执行单元进行绑定后,启动定时器,根据预先接收的触发器参数,确定定时任务的执行时间,并在定时任务的执行时间到达时触发所述触发器单元。
可选地,上述装置,还包括:
触发器参数接收单元,接收各项定时任务的触发器参数,所述触发器参数至少包括触发器的类型和触发器的触发时机,其中,所述触发器的类型包括单次执行触发器和周期性执行触发器。
可选地,上述装置,还包括:
任务参数接收单元,接收各项定时任务的任务参数;
所述任务执行单元,读取预先接收的任务参数,根据所接收到的任务参数生成对应的定时任务调度器,包括:
根据所接收到的各项定时任务的任务参数,生成对应的定时任务调度器。
可选地,上述装置,还包括:
配置单元,存储有各项定时任务的配置信息,所述定时任务的配置信息至少包括如下任一种或几种:
定时任务的任务参数的存储方式、定时任务的触发器参数的存储方式,任务执行单元和触发器单元的绑定配置关系。
可选地,上述装置,所述任务执行单元生成有多个定时任务调度器时,所述任务执行单元和触发器单元的绑定配置关系包括所述任务执行单元中定时任务调度器与触发器单元的绑定关系。
本文还公开了一种业务系统中定时任务的实现方法,包括:
读取预先接收的任务参数,根据所读取的任务参数生成对应的定时任务调度器;
根据预先接收的触发器参数,构建待执行的定时任务的触发器,将生成的定时任务调度器与构建的定时任务的触发器进行绑定;
启动定时器,根据预先接收的触发器参数,确定定时任务执行的时间;
当任一项定时任务执行的时间到达时,触发对应的触发器,所述触发器调用与本触发器绑定的定时任务调度器执行对应的定时任务。
可选地,上述方法,还包括:
接收各项定时任务的触发器参数,所述触发器参数至少包括触发器的类型和触发器的触发时机,其中,所述触发器的类型包括单次执行触发器和周期性执行触发器。
可选地,上述方法,还包括:接收各项定时任务的任务参数;
所述读取预先接收的任务参数,根据所读取的任务参数生成对应的定时任务调度器,包括:
分别读取各项定时任务的任务参数,根据所接收到的各项定时任务的任务参数,生成对应的定时任务调度器。
可选地,上述方法,还包括:
预先设置并存储各项定时任务的配置信息,所述定时任务的配置信息至少包括如下任一种或几种:
定时任务的任务参数的存储方式、定时任务的触发器参数的存储方式,定时任务调度器和触发器的绑定配置关系。
本申请技术方案提供了一种简单易用的定时任务实现方案,企业开发人员可依据此方案在自身的业务系统中创建定时任务,该方案设计清晰,通用型强,每个组成单元各司其职,开发人员关注点集中,开发效率大大提高。
附图说明
图1为本发明实施例业务系统中定时任务的实现装置结构示意图;
图2为本发明实施例业务系统中定时任务的实现方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文将结合具体实施方式对本发明技术方案作进一步详细说明。需要说明的是,在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
本实施例提供一种业务系统中定时任务的实现装置,如图1所法,主要包括任务执行单元、触发器单元和定时器单元。
任务执行单元,读取预先接收的任务参数,根据所接收到的任务参数生成对应的定时任务调度器,并在收到触发器单元的触发时,调用对应的定时任务调度器执行任务;
其中,预先接收的任务参数可能不是一个定时任务的,即可能会有多项定时任务的任务参数,此时,任务执行单元需要根据各项定时任务的任务参数分别生成对应的定时任务调度器。
触发器单元,根据预先接收的触发器参数,构建待执行的定时任务的触发器,并将构建的触发器与执行该定时任务的任务执行单元进行绑定,以及在收到所述定时器单元的触发时,触发与已构建的触发器绑定的任务执行单元执行对应的定时任务;
本实施例中,触发器参数可以包括触发器的类型和触发器的触发时机,其中,所述触发器的类型包括单次执行触发器和周期性执行触发器。
定时器单元,在所述触发器单元与执行定时任务的任务执行单元进行绑定后,启动定时器,根据预先接收的触发器参数,确定定时任务的执行时间,并在定时任务的执行时间到达时触发所述触发器单元。
可选地,上述装置可以增加触发器参数接收单元,用于接收各项定时任务的触发器参数。还可以增加任务参数接收单元,用于接收各项定时任务的任务参数。
另外,在上述装置的基础上,还可以包括配置单元,用于存储预先设置的各项定时任务的配置信息。本文中,定时任务的配置信息至少包括如下任一种或几种:
定时任务的任务参数的存储方式、定时任务的触发器参数的存储方式,任务执行单元和触发器单元的绑定配置关系。
要注意的是,如果任务执行单元生成有多个定时任务调度器,则任务执行单元和触发器单元的绑定配置关系需要包括任务执行单元中定时任务调度器与触发器单元的绑定关系,即具体是哪个定时任务的调度器与触发器单元绑定。其中,同一个触发器单元也可以绑定多个任务调度器。
基于上述装置,本实施例还提供一种业务系统中定时任务的实现方法,如图2所示,包括如下操作:
步骤200:读取预先接收的任务参数,根据所读取的任务参数生成对应的定时任务调度器;
该步骤之前,可以先接收各项定时任务的任务参数;对应地,可以分别读取各项定时任务的任务参数,根据所接收到的各项定时任务的任务参数,分别生成对应的定时任务调度器。
步骤201:根据预先接收的触发器参数,构建待执行的定时任务的触发器,将生成的定时任务调度器与构建的定时任务的触发器进行绑定;
该步骤之前,可以先接收各项定时任务的触发器参数,触发器参数至少包括触发器的类型和触发器的触发时机,其中,触发器的类型包括单次执行触发器和周期性执行触发器。
步骤202:启动定时器,根据预先接收的触发器参数,确定定时任务执行的时间;
步骤203:当任一项定时任务执行的时间到达时,触发对应的触发器,所述触发器调用与本触发器绑定的定时任务调度器执行对应的定时任务。
另外,在上述方法执行之前,可以预先设置并存储各项定时任务的配置信息,所述定时任务的配置信息至少包括如下任一种或几种:
定时任务的任务参数的存储方式、定时任务的触发器参数的存储方式,定时任务调度器和触发器的绑定配置关系。
还要注意的是,上述步骤201中生成定时任务调度器和步骤202中构建定时任务的触发器这两操作可以不限定先后执行顺序,即根据需要,也可以先构建触发器再生成定时任务调度器,或者同时执行亦可,对此,本申请不做特别限定。
下面结合具体应用场景介绍上述方案的详细实施。
首先介绍实际应用中,定时任务的实现装置,该装置具体包括以下七个组成单元。
任务参数接收单元,用于接收任务执行时所依赖的相关参数值,即各项定时任务的任务参数。
本文中涉及的任务参数根据具体任务具体接收的,因此不同的任务可能会接收到不同的任务参数,只要根据接收的任务参数可以完成定时任务的执行即可。例如,定时开启虚拟机任务,必须接收的任务参数是虚拟机id;定时收集主机日志信息,必须接收的任务参数参数是主机ip,日志路径等。
触发器参数接收单元,用于接收触发器参数,其中,触发器参数包括,触发器的类型,比如一次执行、按小时/天/周/月/年等的周期性任务;触发器的触发时机,比如几点几分执行、每多少天的几点几分执行等等。
可见,触发器参数接收单元相当于接收所有定时任务的信息,即接收定时执行的时间计划;其中,定时任务的信息包括,在某个时刻,在每天的几点几分、每多少个小时等不同的时间策略下执行具体的任务。
参数存储单元,用于存储上述任务参数接收单元接收到的任务参数,和触发器参数接收单元接收到的触发器参数;
其中,存储方式可以通过配置文件灵活选择,比如存储到数据库、内存缓存、文件系统等多种存储介质,本实施例不做特殊限制。
任务执行单元,用于具体的任务实现,通过读取任务参数接收单元中的参数值,实现具体的要执行的任务,该单元可由开发人员自由扩展。
触发器单元,根据触发器参数接收单元中读取的参数值(即触发器参数),生成时间策略,通过配置单元的配置,本触发器单元与任务执行单元进行绑定,以便各项定时任务均能在触发器单元生成的时间策略下定时执行,并且支持定时任务与触发器单元的多对多绑定。
配置单元,提供可扩展的配置项,用于定时任务的各项配置,比如参数存储单元中的存储方式配置,任务执行单元和触发器单元的绑定配置等等。
其中,配置单元进行的定时任务的各项配置包括如下任一种或几钟:
触发器的触发类型和触发时间保存的位置,例如,保存在数据库,或者保存到内存,或者保存到指定文件;
触发器和某个具体定时任务的绑定关系,例如触发器1和定时开机任务绑定;触发器2和定时打虚拟机快照绑定。
定时器单元,在定时任务与触发器绑定后,启动定时器单元,根据存储的触发器参数,计算定时任务执行的时间。
通过上述七个组成单元,构建了一套定时任务的设计方案,该方案简单、清晰的设计结构,可通用于所有的业务系统中,开发人员只需关注任务执行单元的业务逻辑实现,通过配置的方式完成定时任务的创建、变更和删除等操作,提高了开发效率。
下面再结合实际应用,说明一种业务系统中定时任务的具体实施过程,该过程包括如下步骤:
S1、构建任务参数接收方法,以接口或api的形式对外提供,接收json或xml格式数据(即接收任务参数)。
S2、在步骤S1中对相关任务参数进行校验,存储相关任务参数值。
S3、构建触发器参数接收方法,以接口或api的形式对外提供,接收json或xml格式数据(即接收触发器参数)。
S4、在步骤S3中对相关触发器参数进行校验,存储相关触发器参数值。
S5、根据步骤S4返回的触发器参数值,构建不同的触发器。
S6、开发人员依据步骤S2返回的任务参数,编写具体的任务实现逻辑,即根据任务参数生成执行对应的定时任务的调度器。
S7、编写定时器,监听有绑定任务时触发该定时器。
S8、编写配置文件,配置任务与触发器相关信息,比如,配置步骤S2和步骤S4的参数存储方式等。
S9、在步骤S8的配置文件中绑定步骤S5构建触发器所产生的具体任务和步骤S6编写任务时生成的调度器。
该步骤即是将上述触发器与执行任务的调度器进行绑定,以便各项定时任务均能在触发器生成的时间策略下定时执行。
S10、当步骤S9生效后,即触发步骤S7的定时器,启动定时。
S11、定时器时间到达步骤S7的触发时机后,触发步骤S6的任务。
S12、执行步骤S6的任务,即调用步骤S6生成的对应的调度器执行定时任务。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
以上所述,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种业务系统中定时任务的实现装置,至少包括任务执行单元、触发器单元和定时器单元:
所述任务执行单元,读取预先接收的任务参数,根据所接收到的任务参数生成对应的定时任务调度器,并在收到触发器单元的触发时,调用对应的定时任务调度器执行任务;
所述触发器单元,根据预先接收的触发器参数,构建待执行的定时任务的触发器,并将构建的触发器与执行该定时任务的任务执行单元进行绑定,以及在收到所述定时器单元的触发时,触发与已构建的触发器绑定的任务执行单元执行对应的定时任务;
所述定时器单元,在所述触发器单元与执行定时任务的任务执行单元进行绑定后,启动定时器,根据预先接收的触发器参数,确定定时任务的执行时间,并在定时任务的执行时间到达时触发所述触发器单元。
2.如权利要求1所述的装置,其特征在于,还包括:
触发器参数接收单元,接收各项定时任务的触发器参数,所述触发器参数至少包括触发器的类型和触发器的触发时机,其中,所述触发器的类型包括单次执行触发器和周期性执行触发器。
3.如权利要求1或2所述的装置,其特征在于,还包括:
任务参数接收单元,接收各项定时任务的任务参数;
所述任务执行单元,读取预先接收的任务参数,根据所接收到的任务参数生成对应的定时任务调度器,包括:
根据所接收到的各项定时任务的任务参数,生成对应的定时任务调度器。
4.如权利要求3所述的装置,其特征在于,还包括:
配置单元,存储有各项定时任务的配置信息,所述定时任务的配置信息至少包括如下任一种或几种:
定时任务的任务参数的存储方式、定时任务的触发器参数的存储方式,任务执行单元和触发器单元的绑定配置关系。
5.如权利要求4所述的装置,其特征在于,
所述任务执行单元生成有多个定时任务调度器时,所述任务执行单元和触发器单元的绑定配置关系包括所述任务执行单元中定时任务调度器与触发器单元的绑定关系。
6.一种业务系统中定时任务的实现方法,包括:
读取预先接收的任务参数,根据所读取的任务参数生成对应的定时任务调度器;
根据预先接收的触发器参数,构建待执行的定时任务的触发器,将生成的定时任务调度器与构建的定时任务的触发器进行绑定;
启动定时器,根据预先接收的触发器参数,确定定时任务执行的时间;
当任一项定时任务执行的时间到达时,触发对应的触发器,所述触发器调用与本触发器绑定的定时任务调度器执行对应的定时任务。
7.如权利要求6所述的方法,其特征在于,还包括:
接收各项定时任务的触发器参数,所述触发器参数至少包括触发器的类型和触发器的触发时机,其中,所述触发器的类型包括单次执行触发器和周期性执行触发器。
8.如权利要求6所述的方法,其特征在于,还包括:接收各项定时任务的任务参数;
所述读取预先接收的任务参数,根据所读取的任务参数生成对应的定时任务调度器,包括:
分别读取各项定时任务的任务参数,根据所接收到的各项定时任务的任务参数,生成对应的定时任务调度器。
9.如权利要求6-8任一项所述的方法,其特征在于,还包括:
预先设置并存储各项定时任务的配置信息,所述定时任务的配置信息至少包括如下任一种或几种:
定时任务的任务参数的存储方式、定时任务的触发器参数的存储方式,定时任务调度器和触发器的绑定配置关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711000898.2A CN107562529A (zh) | 2017-10-24 | 2017-10-24 | 一种业务系统中定时任务的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711000898.2A CN107562529A (zh) | 2017-10-24 | 2017-10-24 | 一种业务系统中定时任务的实现方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107562529A true CN107562529A (zh) | 2018-01-09 |
Family
ID=60987020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711000898.2A Pending CN107562529A (zh) | 2017-10-24 | 2017-10-24 | 一种业务系统中定时任务的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107562529A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111125168A (zh) * | 2019-11-07 | 2020-05-08 | 网银在线(北京)科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN112256416A (zh) * | 2020-10-22 | 2021-01-22 | 上海英方软件股份有限公司 | 一种实现任务复杂调度并同时数据清理的方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1816039A (zh) * | 2005-02-01 | 2006-08-09 | 华为技术有限公司 | 进行数据一致性校验及同步的方法和分布式系统 |
US7334163B1 (en) * | 2004-06-16 | 2008-02-19 | Symantec Corporation | Duplicating handles of target processes without having debug privileges |
CN101887381A (zh) * | 2010-06-22 | 2010-11-17 | 北京伟库电子商务科技有限公司 | 基于Quartz框架的配置定时任务的方法和装置 |
CN101908979A (zh) * | 2010-08-19 | 2010-12-08 | 中兴通讯股份有限公司 | 一种网管管理资源的方法及装置 |
CN104156265A (zh) * | 2014-08-08 | 2014-11-19 | 乐得科技有限公司 | 定时任务的处理方法和处理装置 |
CN104702426A (zh) * | 2013-12-05 | 2015-06-10 | 广东优迈信息通信股份有限公司 | 一种定时调度服务系统的配置方法及装置 |
CN105824695A (zh) * | 2016-03-18 | 2016-08-03 | 浪潮软件集团有限公司 | 一种定时任务调度插件Quartz使用 |
-
2017
- 2017-10-24 CN CN201711000898.2A patent/CN107562529A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7334163B1 (en) * | 2004-06-16 | 2008-02-19 | Symantec Corporation | Duplicating handles of target processes without having debug privileges |
CN1816039A (zh) * | 2005-02-01 | 2006-08-09 | 华为技术有限公司 | 进行数据一致性校验及同步的方法和分布式系统 |
CN101887381A (zh) * | 2010-06-22 | 2010-11-17 | 北京伟库电子商务科技有限公司 | 基于Quartz框架的配置定时任务的方法和装置 |
CN101908979A (zh) * | 2010-08-19 | 2010-12-08 | 中兴通讯股份有限公司 | 一种网管管理资源的方法及装置 |
CN104702426A (zh) * | 2013-12-05 | 2015-06-10 | 广东优迈信息通信股份有限公司 | 一种定时调度服务系统的配置方法及装置 |
CN104156265A (zh) * | 2014-08-08 | 2014-11-19 | 乐得科技有限公司 | 定时任务的处理方法和处理装置 |
CN105824695A (zh) * | 2016-03-18 | 2016-08-03 | 浪潮软件集团有限公司 | 一种定时任务调度插件Quartz使用 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111125168A (zh) * | 2019-11-07 | 2020-05-08 | 网银在线(北京)科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN111125168B (zh) * | 2019-11-07 | 2023-11-03 | 网银在线(北京)科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN112256416A (zh) * | 2020-10-22 | 2021-01-22 | 上海英方软件股份有限公司 | 一种实现任务复杂调度并同时数据清理的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6383518B2 (ja) | 仮想マシンモニター及び仮想マシンモニターのスケジューリング方法 | |
CN101416157B (zh) | 用于对工作流中的延续建模的框架 | |
CN101107598B (zh) | 用于执行计算机上的应用过程的方法和系统 | |
CN109558234A (zh) | 一种定时任务调度方法和装置 | |
CN104714858A (zh) | 数据备份方法及装置、数据恢复方法及装置 | |
US8584144B2 (en) | Determining the processing order of a plurality of events | |
CN104541244A (zh) | 用于进行重放执行的方法和系统 | |
US20150205633A1 (en) | Task management in single-threaded environments | |
CN101416214A (zh) | 用于基于延续的元运行时环境的抽象执行模型 | |
CN108475218A (zh) | 可恢复流处理 | |
CN110704438B (zh) | 一种区块链中布隆过滤器的生成方法及装置 | |
CN110737504B (zh) | 一种深度学习模型训练容错方法、系统、终端及存储介质 | |
CN102088398A (zh) | Web并发事件处理方法及装置 | |
CN114416308A (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN106155730A (zh) | 操作系统加载方法及装置 | |
CN111679902B (zh) | 基于区块链的智能合约调用方法及装置、电子设备 | |
CN113760513A (zh) | 一种分布式任务调度方法、装置、设备和介质 | |
CN109933338A (zh) | 区块链部署方法、装置、计算机设备和存储介质 | |
CN107562529A (zh) | 一种业务系统中定时任务的实现方法及装置 | |
CN107577527A (zh) | 任务生成、调度方法及装置 | |
CN114780285A (zh) | 区块链数据恢复方法及装置、电子设备 | |
CN101789944B (zh) | 多功能电能表通信协议栈的开发系统 | |
CN110134504A (zh) | 一种基于有限状态机的操作系统需求层形式化建模方法及装置 | |
EP2870535A1 (fr) | Procede d'execution, au sein d'un systeme embarque multitaches, d'une application cadencee par plusieurs domaines de temps differents incluant une gestion d'interruptions | |
CN106406997A (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 |
Application publication date: 20180109 |
|
RJ01 | Rejection of invention patent application after publication |