CN111143043A - 基于Quartz服务的计划任务处理方法、装置、设备及介质 - Google Patents

基于Quartz服务的计划任务处理方法、装置、设备及介质 Download PDF

Info

Publication number
CN111143043A
CN111143043A CN201911212296.2A CN201911212296A CN111143043A CN 111143043 A CN111143043 A CN 111143043A CN 201911212296 A CN201911212296 A CN 201911212296A CN 111143043 A CN111143043 A CN 111143043A
Authority
CN
China
Prior art keywords
task
programming interface
application programming
quartz
plan
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.)
Granted
Application number
CN201911212296.2A
Other languages
English (en)
Other versions
CN111143043B (zh
Inventor
姜斌
张鑫
李亚楠
刘文芸
孙朝霞
李海生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TIANJIN TONGYANG TECHNOLOGY DEVELOPMENT CO LTD
Original Assignee
TIANJIN TONGYANG TECHNOLOGY DEVELOPMENT CO LTD
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by TIANJIN TONGYANG TECHNOLOGY DEVELOPMENT CO LTD filed Critical TIANJIN TONGYANG TECHNOLOGY DEVELOPMENT CO LTD
Priority to CN201911212296.2A priority Critical patent/CN111143043B/zh
Publication of CN111143043A publication Critical patent/CN111143043A/zh
Application granted granted Critical
Publication of CN111143043B publication Critical patent/CN111143043B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例公开了一种基于Quartz服务的计划任务处理方法、装置、设备及存储介质,该方法包括:基于Quartz服务获取与各原始计划任务对应的计划信息,每个计划信息包括应用程序编程接口地址和Cron表达式;基于Quartz服务解析各Cron表达式,得到各执行时间;针对每个原始计划任务,基于Quartz服务控制线程每当系统时间达到各执行时间,则根据应用程序编程接口地址调用对应的应用程序编程接口以执行原始计划任务。本发明实施例由于各线程的执行各原始计划任务均由Quartz服务控制,因此,实现了对各计划任务的统一管理。并且,通过多线程可支持各原始计划任务并发执行,从而提高了计划任务的执行效率。

Description

基于Quartz服务的计划任务处理方法、装置、设备及介质
技术领域
本发明实施例涉及数据库技术领域,尤其涉及一种基于Quartz服务的计划任务处理方法、装置、设备及存储介质。
背景技术
计划任务,即在某个时间点做某件事情,即在预设时间点,执行预设操作。
现有技术中,通常采用如下两种方式实现计划任务:方式一、基于Windows的计划任务处理方法;方式二、基于数据库定时作业的计划任务处理方法。
然而,发现现有技术中至少存在如下问题:针对方式一而言,其仅能针对Windows应用程序进行操作,如果需要扩展应用程序类型,则需要开发多个应用程序以供Windows计划任务调用。上述不但增加了开发成本,而且无法实现对各应用程序的统一管理。此外,执行计划任务的频率低,无法执行高频操作。针对方式二而言,其仅限于采用SQL(StructuredQuery Language,结构化查询语言)语句对计划任务进行处理,实现方式比较单一。此外,其仅能对数据库内部的计划任务进行管理,具有一定的应用局限性。
发明内容
本发明实施例提供了一种基于Quartz服务的计划任务处理方法、装置、设备及存储介质,以实现在对各计划任务的统一管理的基础上,提高计划任务的执行效率。
第一方面,本发明实施例提供了一种基于Quartz服务的计划任务处理方法,该方法包括:
基于Quartz服务获取与各原始计划任务对应的计划信息,每个计划信息包括应用程序编程接口地址和Cron表达式;
基于所述Quartz服务解析各所述Cron表达式,得到各执行时间;
针对每个所述原始计划任务,基于所述Quartz服务控制线程每当系统时间达到各所述执行时间,则根据所述应用程序编程接口地址调用对应的应用程序编程接口以执行所述原始计划任务。
进一步的,所述基于Quartz服务获取与各原始计划任务对应的计划信息之前,还包括:
基于Quartz服务获取各原始计划任务的应用程序编程接口地址和预设时间计划;
针对每个所述原始计划任务,基于所述Quartz服务根据所述预设时间计划,生成Cron表达式;
基于所述Quartz服务将各所述应用程序编程接口地址和各所述Cron表达式作为各所述原始计划任务的计划信息并存储。
进一步的,所述针对每个所述原始计划任务,基于所述Quartz服务控制线程每当系统时间达到各所述执行时间,则根据所述应用程序编程接口地址调用对应的应用程序编程接口以执行所述原始计划任务之后,还包括:
基于所述Quartz服务如果获取到修改指令,所述修改指令包括各目标计划任务,每个所述目标计划任务属于所述原始计划任务,则控制各所述线程暂停执行各所述目标计划任务,根据所述修改指令对各所述目标计划任务的应用程序编程接口和/或Cron表达式进行修改,并将修改后的计划信息进行存储;
基于所述Quartz服务如果获取到删除指令,所述删除指令包括各目标计划任务,每个所述目标计划任务属于所述原始计划任务,则控制各所述线程暂停执行各所述目标计划任务,并根据所述删除指令,删除各所述目标计划任务的计划信息;
基于所述Quartz服务如果获取到添加指令,所述添加指令包括各待添加计划任务的应用程序编程接口地址和预设时间计划,则根据所述添加指令确定各所述待添加计划任务的计划信息并存储。
进一步的,所述针对每个所述原始计划任务,基于所述Quartz服务控制线程每当系统时间达到各所述执行时间,则根据所述应用程序编程接口地址调用对应的应用程序编程接口以执行所述原始计划任务之后,还包括:
基于所述Quartz服务如果确定各所述原始计划任务的执行结果与预设结果不一致,则将与预设结果不一致的各所述执行结果存储至日志文件并生成修改指令。
进一步的,所述基于所述Quartz服务解析各所述Cron表达式,得到各执行时间之后,还包括:
基于所述Quartz服务将各所述执行时间存储至日志文件。
进一步的,所述基于Quartz服务获取各原始计划任务的应用程序编程接口地址和预设时间计划之前,还包括:
获取Quartz服务配置信息;
根据所述Quartz服务配置信息,配置Quartz服务。
第二方面,本发明实施例还提供了一种基于Quartz服务的计划任务处理装置,该装置包括:
计划信息获取模块,用于基于Quartz服务获取与各原始计划任务对应的计划信息,每个所述计划信息包括应用程序编程接口地址和Cron表达式;
执行时间确定模块,用于基于所述Quartz服务解析各所述Cron表达式,得到各执行时间;
原始计划任务执行模块,用于针对每个所述原始计划任务,基于所述Quartz服务控制线程每当系统时间达到各所述执行时间,则根据所述应用程序编程接口地址调用对应的应用程序编程接口以执行所述原始计划任务。
进一步的,该装置还包括:
接口地址和时间获取模块,用于基于Quartz服务获取各原始计划任务的应用程序编程接口地址和预设时间计划;
Cron表达式生成模块,用于针对每个所述原始计划任务,基于所述Quartz服务根据所述预设时间计划,生成Cron表达式;
计划信息存储模块,用于基于所述Quartz服务将各所述应用程序编程接口地址和所述Cron表达式作为计划信息进行存储。
第三方面,本发明实施例还提供一种设备,该设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例第一方面所述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例第一方面所述的方法。
本发明实施例通过基于Quartz服务获取与各原始计划任务对应的计划信息,每个计划信息包括应用程序编程接口地址和Cron表达式,基于Quartz服务解析各Cron表达式,得到各执行时间,针对每个原始计划任务,基于Quartz服务控制线程每当系统时间达到各执行时间,则根据应用程序编程接口地址调用对应的应用程序编程接口以执行原始计划任务。上述由于各线程的执行各原始计划任务均由Quartz服务控制,因此,实现了对各计划任务的统一管理。并且,通过多线程可支持各原始计划任务并发执行,从而提高了计划任务的执行效率。
附图说明
图1是本发明实施例中的一种基于Quartz服务的计划任务处理方法的流程图;
图2是本发明实施例中的一种计划任务管理页面的部分示意图;
图3是本发明实施例中的另一种计划任务管理页面的部分示意图;
图4是本发明实施例中的另一种基于Quartz服务的计划任务处理方法的流程图;
图5是本发明实施例中的一种基于Quartz服务的计划任务处理装置的结构示意图;
图6是本发明实施例中的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定,实施例中记载的各个特征可进行组合,形成多个可选方案。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
为了解决传统技术中存在的上述问题,以实现在对各计划任务的统一管理的基础上,提高计划任务的执行效率,可考虑采用基于Quartz服务的计划任务处理方法。其中,Quartz是一个完全由Java开发的开源的计划任务管理系统。计划任务管理系统即是在预设时间到达时,负责执行(或者通知)其他软件组件的系统。Quartz服务支持多种错误处理形式,如错误后下次不执行、马上重新执行和下次继续执行等,以及,支持多种漏触发处理,如关机漏触发等。Quartz包括SimpleTrigger、CronTirgger、DateIntervalTrigger、NthIncludedDayTrigger和Calendar五种类型的定时器。其中,最常用的定时器为SimpleTrigger和CronTrigger。SimpleTrigger用于触发只需执行一次,或者,在预设时间触发并且重复N次,且,每次执行延迟预设时间的计划任务。CronTrigger用于按照日历触发,如“每个周五”、“每个月10日中午”和“每个月10日的10:15分”等。Quartz用一个小Java库发布库文件,这个库文件包含了所有Quartz核心功能,这些功能的主要应用程序编程接口(Application Programming Interface,API)是调度程序接口。采用基于Quartz服务的计划任务处理方法,可实现针对不同的用户需求,进行代码灵活开发,开发出不同的定时计划任务。通过发布计划任务的应用程序编程接口,进行计划任务的调用。下面将结合实施例进行说明。
图1为本发明实施例提供的一种基于Quartz服务的计划任务处理方法的流程图,本实施例可适用于在对各计划任务的统一管理的基础上,提高计划任务的执行效率的情况,该方法可以由基于Quartz服务的计划任务处理装置来执行,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于设备中,例如典型的是计算机。如图1所示,该方法具体包括如下步骤:
步骤110、基于Quartz服务获取与各原始计划任务对应的计划信息,每个计划信息包括应用程序编程接口地址和Cron表达式。
在本发明的实施例中,原始计划任务可理解为需要被执行的计划任务。原始计划任务的类型可包括校准数据的收发、小时数据的计算、日数据的计算、周数据的计算、月数据的计算、季度数据的计算、AQI(Air Quality Index,空气质量指数)数据的计算、报警信息的生成、报警信息的推送、综合报表数据的生成和微信消息的推送等。计划信息可用于作为Quartz服务控制各线程执行原始计划任务的依据。计划信息可包括应用程序编程接口地址和Cron表达式。其中,应用程序编程接口可用于表示应用程序编程接口的地址。Cron表达式可用于作为确定各原始计划任务执行时间的依据。Cron表达式是一个以5或6个空格隔开,分为6或7个字段的字符串。Cron表达式的结构为:秒分小时日期月份星期年份。其中,年份字段可空。Cron表达式中各字段的含义参见表1。
表1
字段 允许的值 允许的特殊字符
0-59 ,-*/
0-59 ,-*/
小时 0-23 ,-*/
日期 1-31 ,-*?/L W C
月份 1-12或JAN-DEC ,-*/
星期 1-7或SUN-SAT ,-*?/L C#
年份 1970-2099或空 ,-*/
下面针对表1中特殊字符进行说明。“,”可表示列表值。如星期字段为“MON,WED,FRI”,其表示星期一、星期三和星期五均触发一次;“-”可表示一个范围,如小时字段为“10-12”,其表示10时、11时和12时均触发一次;“*”可用来匹配字段的任意值。如在分钟字段中采用“*”,即表示每分钟触发一次;“/”可表示一个等步长序列,具体可用x/y表示,其中,x为起始值,y为增量步长值。如在分钟字段中采用“5/15”,其表示5分钟、20分钟、35分钟和50分钟。需要说明的是,“*”在“/”前面(如*/10)可等同于0在“/”前面(如0/10);“?”只在日期字段和星期字段中采用,其通常指定为无意义的值,相当于点位符;“#”可表示设定每个月第几个星期几,其只在星期字段中采用,如星期字段“4#2”表示某月的第二个星期三;“L”可表示“Last”,其只在日期字段和星期字段中采用,但在这两个字段中的含义不同。“L”在日期字段中表示这个月份的最后一天,如一月的31日。“L”在星期字段中表示星期六,等同于7。此外,但是,如果“L”出现在星期字段,且,其前面有数值X,即XL,则表示这个月的最后某一天。“6L”表示这个月的最后一个星期五触发一次;“W”可表示有效工作日,所谓有效工作日可理解为距设定日期最近的工作日,其只在日期字段中采用,如在日期字段中采用“5W”。如果5日是星期六,则将在最近的工作日,即4日(即星期五)触发一次。如果5日是星期日,则将在6日(即周一)触发一次;“C”可表示计划所关联的日期,其只在日期字段和星期字段中采用,其依据一个设定的“日历”,也就是说这个表达式的值依赖于相关的“日历”的计算结果。如果没有“日历”关联,则等同于所有包含的“日历”。如日期字段“5C”表示关联“日历”中的第一天,或者某月开始的第一天的后5天。星期字段“1C”表示关联“日历”中的第一天,或者星期的第一天的后1天,即周日的后一天(即周一);“LW”可表示某月的最后一个工作日,其只在星期字段中采用。示例性的,如“0 0 2 1*?*”可表示在每月1日的凌晨2点执行计划任务。又如“0 15 10?6L 2017-2019”可表示2017-2019年每月的最后一个星期五上午10:15执行计划任务。
Quartz服务为了控制各线程执行对应的原始计划任务,可获取与各原始计划任务对应的计划信息,每个计划信息可包括应用程序编程接口地址和Cron表达式。
步骤120、基于Quartz服务解析各Cron表达式,得到各执行时间。
在本发明的实施例中,执行时间可用于作为确定原始计划任务何时被执行的依据。上述所述的基于Quartz服务解析各Cron表达式,得到各执行时间,可作如下理解:针对每个原始计划任务,基于Quartz服务可解析该原始计划任务的Cron表达式,得到该原始计划任务的各执行时间。需要说明的是,每个原始计划任务对应的执行时间的个数可为至少一个。
步骤130、针对每个原始计划任务,基于Quartz服务控制线程每当系统时间达到各执行时间,则根据应用程序编程接口地址调用对应的应用程序编程接口以执行原始计划任务。
在本发明的实施例中,系统时间可用于作为确定原始计划任务何时被执行的依据。基于Quartz服务在获得各原始计划任务的各执行时间后,可控制各线程根据应用程序编程接口地址调用对应的应用程序编程接口以执行各原始计划任务,即针对每个原始计划任务,基于Quartz服务可控制与该原始计划任务对应的线程,根据该原始计划任务的应用程序编程接口调用对应的应用程序编程接口,以执行该原始计划任务。每个线程可通过上述方式执行对应的原始计划任务。需要说明的是,通过quartz服务控制各线程执行原始计划任务,采用多线程的方法,使得各线程相互独立运行,互不影响,即通过控制多线程可实现各原始计划任务并行执行。
还需要说明的是,由于每个原始计划任务的执行时间为至少一个,因此,针对每个原始计划任务,每当系统时间达到执行时间,则基于Quartz服务便可控制与该原始计划任务对应的线程根据该原始计划任务的应用程序编程接口地址调用对应的应用程序编程接口,以执行该原始计划任务。可以理解到,该原始计划任务成为被按时执行的重复作业任务。
上述由于各线程的执行各原始计划任务均由Quartz服务控制,因此,实现了对各计划任务的统一管理。且,由于通过调用应用程序编程接口的方式实现原始计划任务的执行,因此,可执行的多种类型的原始计划任务。Quartz服务以Windows服务的形式,在设备后台自动运行,无需与用户进行交互。由于计划任务时间可以精确到秒,因此,可实现高频操作。同时,Quartz服务可实现原始计划任务和定时器的多对多的关系,即可将多个原始计划任务与不同定时器关联,进而提高了作业的复用性。此外,通过多线程可支持多原始计划任务并发执行,从而极大提高了计划任务的执行效率。需要说明的是,本发明实施例所提供的技术方案可基于.Net Framework框架开发,以Quartz服务的形式,采用松耦合的线程池管理方式管理线程环境,委托执行原始计划任务。由于只对原始计划任务进行管理,无需关心具体的业务操作,因此,使得计划任务与业务独立开来,从而更为专业化和精细化。并且,也便于任何基于.Net Framework框架开发的应用程序调用。
本实施例的技术方案,通过基于Quartz服务获取与各原始计划任务对应的计划信息,每个计划信息包括应用程序编程接口地址和Cron表达式,基于Quartz服务解析各Cron表达式,得到各执行时间,针对每个原始计划任务,基于Quartz服务控制线程每当系统时间达到各执行时间,则根据应用程序编程接口地址调用对应的应用程序编程接口以执行原始计划任务。上述由于各线程的执行各原始计划任务均由Quartz服务控制,因此,实现了对各计划任务的统一管理。并且,通过多线程可支持各原始计划任务并发执行,从而提高了计划任务的执行效率。
可选的,在上述技术方案的基础上,基于Quartz服务获取与各原始计划任务对应的计划信息之前,具体还可以包括:基于Quartz服务获取各原始计划任务的应用程序编程接口地址和预设时间计划。针对每个原始计划任务,基于Quartz服务根据预设时间计划,生成Cron表达式。基于Quartz服务将各应用程序编程接口地址和各Cron表达式作为各原始计划任务的计划信息并存储。
在本发明的实施例中,预设时间计划可用于作为生成Cron表达式的依据。各原始计划任务的计划信息可通过如下方式生成:针对每个原始计划任务,基于Quartz服务可获取该原始计划任务的应用程序编程接口地址和预设时间计划。基于Quartz服务可根据该原始计划任务的预设时间计划,生成对应的Cron表达式。基于此,基于Quartz服务可获得各原始计划任务的Cron表达式。示例性的,如某原始计划任务的预设时间计划为三月的每个星期三的14:00执行原始计划任务。基于此,基于Quartz服务获取到该原始计划任务的预设时间计划,则可根据该预设时间计划,生成对应的Cron表达式,该Cron表达式即为“0 10 14?3WED”。可以理解到,预设时间计划可根据用户实际需求进行设置。
基于Quartz服务获得各原始计划任务的应用程序编程接口地址和Cron表达式后,针对每个原始计划任务,可将该原始计划任务的应用程序编程接口和Cron表达式作为该原始计划任务的计划信息,并将该计划信息进行存储,以便后续基于Quartz服务在获取到该原始计划任务的应用程序编辑接口地址和Cron表达式后,可对该Cron表达式进行解析,得到各执行时间,以控制与该原始计划任务对应的线程每当系统时间达到各执行时间,根据该原始计划任务的应用程序编程接口地址调用对应的应用程序编程接口,以执行该原始计划任务。
需要说明的是,基于Quartz服务可将每个原始计划任务的应用程序编程接口地址作为控制与该原始计划任务对应的线程调用对应的应用程序编程接口的依据。
另需要说明的是,为了使基于Quartz服务可获取到各原始计划任务的应用程序编程接口地址和应用程序编程接口,生成各原始计划任务的应用程序编程接口地址和应用程序编程接口。针对每个原始计划任务的应用程序编程接口地址和应用程序编程接口,可通过如下方式中的至少一种生成,具体的:方式一、开发编写该原始计划任务的应用程序编程接口地址和应用程序编程接口;方式二、获取现有的应用程序编程接口地址和应用程序编程接口,并将现有的应用程序编程接口地址和应用程序编程接口作为该原始计划任务的应用程序编程接口地址和应用程序编程接口。
还需要说明的是,可将上述基于Quartz服务获得各原始计划任务的计划信息的过程理解为是对各原始计划任务的开发维护。Quartz服务可通过计划任务管理页面对各原始计划任务进行开发维护。可结合图2和图3,如图2所示,给出了一种计划任务管理页面的部分示意图。如图3所示,给出了另一种计划任务管理页面的部分示意图。图2中显示的计划任务管理页面包括任务名称、任务类型、接口地址和接口描述等内容。其中,任务名称可理解为原始计划任务的名称。任务类型可理解为原始计划任务所属的类型。接口地址可理解为原始计划任务的应用程序编程接口地址。接口描述可理解为对原始计划任务的应用程序编程接口地址的描述。其中,任务名称和接口描述可一致。图2中显示的任务名称为“发送校准数据”,接口描述也为“发送校准数据。此外,图2中还显示了保存控件和取消控件。上述控件可用于对获取到的原始计划任务的任务名称、任务类型、接口地址和接口描述等内容的保存或取消。图3中显示的计划任务管理页面包括计划名称、任务名称、计划表达式、计划说明、备注和预设时间计划的设置和Cron表达式等内容。其中,预设时间计划的设置可通过用户通过控制各控件选择的信息和/或通过各控件输入的信息获取到。计划名称可理解为执行原始计划任务的名称,计划名称可与任务名称一致。计划说明可理解为对原始计划任务的预设时间计划的说明。图3中显示的计划名称为“生成校准数据”,任务名称也为“生成校准数据”,计划表达式为“00,10,20,30,40,50***?”,计划说明为“每月每日每时每时51,56分”。预设时间计划的设置可包括秒、分、小时、日、月、周和年等标签。并且,可通过触发对应标签的控件,显示更为具体的内容,更为具体的内容包括对该标签的具体设置。此外,图3中还显示了传递Cron字符串控件。可通过对传递Cron字符串控件的触发,将生成的Cron表达式进行存储。
可选的,在上述技术方案的基础上,针对每个原始计划任务,基于Quartz服务控制线程每当系统时间达到各执行时间,则根据应用程序编程接口地址调用对应的应用程序编程接口以执行原始计划任务之后,具体还可以包括:基于Quartz服务如果获取到修改指令,修改指令包括各目标计划任务,每个目标计划任务属于原始计划任务,则控制各线程暂停执行各目标计划任务,根据修改指令对应用程序编程接口地址、应用程序编程接口和Cron表达式中的至少一项进行修改,并将修改后的各计划信息进行存储。基于Quartz服务如果获取到删除指令,删除指令包括各目标计划任务,每个目标计划任务属于原始计划任务,则控制各线程暂停执行各目标计划任务,并根据删除指令,删除各目标计划任务的计划信息。基于Quartz服务如果获取到添加指令,添加指令包括各待添加计划任务的应用程序编程接口地址和预设时间计划,则根据添加指令确定各待添加计划任务的计划信息并存储。
在本发明的实施例中,基于Quartz服务在控制各线程执行各原始计划任务的过程中,可对各原始计划任务执行修改操作和删除操作等,以及,对待添加计划任务执行添加操作等。其中,待添加计划任务可理解为新增加的计划任务,将待添加计划任务设置完成后,待添加任务将成为原始计划任务。其中,修改操作可由基于Quartz服务获取到修改指令触发,删除操作可由基于Quartz服务获取到删除指令触发,添加操作可由基于Quartz服务获取到添加指令触发。修改指令可包括各目标计划任务和各目标计划任务修改部分,每个目标计划任务属于原始计划任务,每个目标计划任务修改部分可包括应用程序编程接口地址、应用程序编程接口和Cron表达式中的至少一项。修改指令可主动生成,也可被动生成。所谓主动生成可理解为由于主动触发对原始计划任务的修改而生成,所谓被动生成可理解为由于线程在执行原始计划任务过程中发生错误而生成。错误可体现为执行原始计划任务得到的执行结果与预设结果不一致。删除指令可包括各目标计划任务。添加指令可包括各待添加计划任务的应用程序编程接口地址和预设时间计划。需要说明的是,上述修改操作和删除操作,在基于Quartz服务控制各线程执行各原始计划任务的过程中均可能发生。即针对每个原始计划任务,基于Quartz服务控制与该原始计划任务对应的线程执行该原始计划任务的过程中,均可能发出对原始计划任务的修改操作和删除操作。还需要说明的是,在执行修改操作和删除操作前,基于Quartz服务需控制线程暂停执行目标计划任务。即执行计划需要改变时,目标计划任务将自动停止执行,在对目标计划任务执行编辑操作结束后,基于Quartz服务再重新启动线程执行修改后的目标计划任务,其中,执行时间会重新计算。修改后的目标计划任务会在新的执行时间内有序持续地执行。可以理解到,针对Quartz服务而言,基于Quartz服务在控制各线程执行各原始计划任务的过程中,可能发生添加操作。
基于上述,基于Quartz服务如果获取到修改指令,则针对每个目标计划任务,基于Quartz服务可控制与该目标计划任务对应的线程暂停执行该目标计划任务,并可根据修改指令对该目标计划任务的应用程序编程接口地址、应用程序编程接口和Cron表达式中的至少一项进行修改,得到修改后的计划信息,并可将修改后的计划信息替换修改前的计划信息进行存储。上述所述的根据修改指令对该目标计划任务的应用程序编程接口地址、应用程序编程接口和Cron表达式中的至少一项进行修改,可作如下理解:如果修改指令中的目标计划任务修改部分包括应用程序编程接口地址,则基于Quartz服务可根据修改指令对应用程序编程接口进行修改。如果修改指令中的目标计划任务修改部分包括应用程序编程接口,则基于Quartz服务可根据修改指令对应用程序编程接口进行修改。如果修改指令中的目标计划任务修改部分包括Cron表达式,则基于Quartz服务可根据修改指令对Cron表达式进行修改。如果修改指令中的目标计划任务修改部分包括应用程序编程接口地址和应用程序编程接口,则基于Quartz服务可根据修改指令对应用程序编程接口地址和应用程序编程接口进行修改。如果修改指令中的目标计划任务修改部分包括应用程序编程接口地址和Cron表达式,则基于Quartz服务可根据修改指令对应用程序编程接口地址和Cron表达式进行修改。如果修改指令中的目标计划任务修改部分包括应用程序编程接口和Cron表达式,则基于Quartz服务可根据修改指令对应用程序编程接口和Cron表达式进行修改。如果修改指令中的目标计划任务修改部分包括应用程序编程接口地址、应用程序编程接口和Cron表达式,则基于Quartz服务可根据修改指令对应用程序编程接口地址、应用程序编程接口和Cron表达式进行修改。基于此,基于Quartz服务可对各目标计划任务进行修改。
基于Quartz服务如果获取到删除指令,则针对每个目标计划任务,基基于Quartz服务可控制与该目标计划任务对应的线程暂停执行该目标计划任务,并可根据该删除指令,删除该目标计划任务的计划信息。可以理解到,由于该目标计划任务的计划信息被删除,因此,该目标计划任务将不再被执行。基于此,基于Quartz服务可将各目标计划任务的计划信息删除。
基于Quartz服务如果获取到添加指令,则针对每个待添加计划任务,基于Quartz服务可根据该待添加计划任务的预设时间计划,生成Cron表达式,并可将该待添加计划任务的应用程序编程接口地址和该Cron作为该待添加计划任务的计划信息进行存储。可以理解到,该待添加计划任务的应用程序编程接口可根据该待添加计划任务的应用程序编程接口地址调用。在获得该待添加计划任务的计划信息后,该待添加计划任务可理解为原始计划任务。基于此,基于Quartz服务可添加各待添加计划任务的计划信息。
需要说明的是,可将上述基于Quartz服务对各目标计划任务的修改操作和删除操作,以及,对各待添加计划任务的添加操作理解为是对各目标计划任务和各待添加计划任务的开发维护。基于Quartz服务可通过计划任务管理页面对各目标计划任务和各待添加计划任务进行开发维护。
可选的,在上述技术方案的基础上,针对每个原始计划任务,基于Quartz服务控制线程每当系统时间达到各执行时间,则根据应用程序编程接口地址调用对应的应用程序编程接口以执行原始计划任务之后,具体还可以包括:基于Quartz服务如果确定各原始计划任务的执行结果与预设结果不一致,则将与预设结果不一致的各所述执行结果存储至日志文件并生成修改指令。
在本发明的实施例中,每执行一次原始计划任务,则将会得到一个执行结果。预设结果可用于作为确定执行结果是否正确的依据。预设结果可理解为是原始计划任务被正确执行所得到的结果。可以理解到,执行结果可能与预设结果一致,也可能与预设结果不一致。如果执行某原始计划任务得到的执行结果与预设结果不一致,则可说明执行该原始计划任务出现了错误,可生成修改指令,以便后续根据修改指令对该原始计划任务进行修改,以及,可将与预设结果不一致的执行结果存储至日志文件。
基于上述,针对每个原始计划任务,基于Quartz服务如果确定该原始计划任务的执行结果与预设结果不一致,则可将与预设结果不一致的执行结果存储至日志文件,并生成修改指令。为了确定原始计划任务是否被正确执行,可根据Cron表达式,确定预设次数所对应的执行时间,针对该原始计划任务,基于Quartz服务控制线程每当系统时间达到各执行时间,则根据应用程序编程接口地址调用对应的应用程序编程接口以执行原始计划任务,得到执行结果。基于Quartz服务如果确定预设次数的执行结果分别与对应的预设结果一致,则可确定原始计划任务被正确执行。需要说明的是,预设次数的具体数值可根据实际情况进行设定,在此不作具体限定。
可选的,在上述技术方案的基础上,基于Quartz服务解析各Cron表达式,得到各执行时间之后,具体还可以包括:基于Quartz服务将各执行时间存储至日志文件。
在本发明的实施例中,针对每个原始计划任务,基于Quartz服务在对该原始计划任务的Cron表达式进行解析,得到各执行时间后,可将该原始计划任务的各执行时间存储至日志文件。基于此,基于Quartz服务可将各原始计划任务的各执行时间存储至日志文件。
上述通过日志文件,便于获取原始计划任务的历史执行情况,即便于追溯历史数据。
可选的,在上述技术方案的基础上,针对每个原始计划任务,基于Quartz服务根据预设时间计划,生成Cron表达式之前,具体还可以包括:获取Quartz服务配置信息。根据Quartz服务配置信息,配置Quartz服务。
在本发明的实施例中,为了使Quartz服务可使用,可获取Quartz服务配置信息,并根据Quartz服务配置信息,配置Quartz服务,具体可为获取Quartz服务配置信息,并根据Quartz服务配置信息将Quartz服务设置在发布网站的服务器上。其中,发布网站可理解为运行计划任务管理页面的网站。
需要说明的是,针对获取Quartz服务配置信息,并根据Quartz服务配置信息,配置Quartz服务,以及,各原始计划任务的应用程序编程接口地址和预设时间计划的生成的执行顺序不作限定,具体可根据实际情况进行设定。可选的,获取Quartz服务配置信息,并根据Quartz服务配置信息,配置Quartz服务,与,各原始计划任务的应用程序编程接口地址的生成可并行执行。或者,先执行获取Quartz服务配置信息,并根据Quartz服务配置信息,配置Quartz服务,再执行各原始计划任务的应用程序编程接口地址的生成。或者,先执行各原始计划任务的应用程序编程接口地址的生成,再执行获取Quartz服务配置信息,并根据Quartz服务配置信息,配置Quartz服务。
图4为本发明实施例提供的另一种基于Quartz服务的计划任务处理方法的流程图,本实施例为上一实施例的具体示例。本实施例可适用于在对各计划任务的统一管理的基础上,提高计划任务的执行效率的情况,该方法可以由基于Quartz服务的计划任务处理装置来执行,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于设备中,例如典型的是计算机。如图4所示,该方法具体包括如下步骤:
步骤201、获取Quartz服务配置信息,并根据Quartz服务配置信息,配置Quartz服务。
步骤202、基于Quartz服务获取各原始计划任务的应用程序编程接口地址和预设时间计划。
步骤203、针对每个原始计划任务,基于Quartz服务根据预设时间计划,生成Cron表达式。
步骤204、基于Quartz服务将各应用程序编程接口地址和各Cron表达式作为各原始计划任务的计划信息并存储。
步骤205、基于Quartz服务获取与各原始计划任务对应的计划信息,每个计划信息包括应用程序编程接口地址和Cron表达式。
步骤206、基于Quartz服务解析各Cron表达式,得到各执行时间。
步骤207、针对每个原始计划任务,基于Quartz服务控制线程每当系统时间达到各执行时间,则根据应用程序编程接口地址调用对应的应用程序编程接口以执行原始计划任务。
步骤208、基于Quartz服务如果获取到修改指令,修改指令包括各目标计划任务,每个目标计划任务属于所述原始计划任务,则控制各线程暂停执行各目标计划任务,根据修改指令对各目标计划任务的应用程序编程接口地址、应用程序编程接口和Cron表达式中的至少一项进行修改,并将修改后的各计划信息进行存储。
步骤209、基于Quartz服务如果获取到删除指令,删除指令包括各目标计划任务,每个目标计划任务属于原始计划任务,则控制各线程暂停执行各目标计划任务,并根据删除指令,删除各目标计划任务的计划信息。
步骤210、基于Quartz服务如果获取到添加指令,添加指令包括各待添加计划任务的应用程序编程接口地址和预设时间计划,则根据添加指令确定各待添加计划任务的计划信息并存储。
在本发明的实施例中,需要说明的是,针对每个原始计划任务,基于Quartz服务控制线程每当系统时间达到各执行时间,则根据应用程序编程接口地址调用对应的应用程序编程接口以执行原始计划任务之后,具体还可以包括:基于Quartz服务如果确定各原始计划任务的执行结果与预设结果不一致,则将与预设结果不一致的各执行结果存储至日志文件并生成修改指令。基于Quartz服务解析各Cron表达式,得到各执行时间之后,具体还可以包括:基于Quartz服务将各执行时间存储至日志文件。
为了更好的理解本发明实施例所提供的技术方案,下面将通过示例进行说明:
示例一、采用基于Quartz服务的计划任务处理方法处理AQI计划任务
在环境监测系统中,每个环境监测站点,每分钟均有多种不同类型参数的空气参数值上传到数据库数据表中,系统需要根据各种空气参数计算AQI报表,如AQI小时报表和AQI日报表等。现设定原始计划任务的个数为两个,分别为AQI小时报表和AQI日报表。AQI小时报表的预设时间计划为每小时05分执行。AQI日报表的预设时间计划为每天00点20分执行。
针对AQI小时报表而言,基于Quartz服务获取AQI小时报表的应用程序编程接口地址和预设时间计划。基于Quartz服务根据预设时间计划,生成Cron表达式。基于Quartz服务将AQI小时报表的应用程序编程接口地址和Cron表达式作为AQI小时报表的计划信息并存储。同样的,针对AQI日报表而言,基于Quartz服务获取AQI日报表的应用程序编程接口地址和预设时间计划。基于Quartz服务根据预设时间计划,生成Cron表达式。基于Quartz服务将AQI日报表的应用程序编程接口地址和Cron表达式作为AQI日报表的计划信息并存储。
基于Quartz服务获取与AQI小时报表对应的计划信息,该计划信息包括AQI小时报表的应用程序编程接口地址和Cron表达式。基于Quartz服务解析该Cron表达式,得到各执行时间。基于Quartz服务控制与AQI小时报表对应的线程每当系统时间达到各执行时间,则根据应用程序编程接口地址调用对应的应用程序编程接口以执行AQI小时报表。其中,AQI小时报表的应用程序编程接口处理逻辑为:针对当前小时,根据AQI小时数据表中参与AQI计算的参数的浓度值,计算上一小时的AQI数据,并生成AQI小时报表。
基于Quartz服务获取与AQI日报表对应的计划信息,该计划信息包括AQI日报表的应用程序编程接口地址和Cron表达式。基于Quartz服务解析该Cron表达式,得到各执行时间。基于Quartz服务控制与AQI日报表对应的线程每当系统时间达到各执行时间,则根据应用程序编程接口地址调用对应的应用程序编程接口以执行AQI日报表。其中,AQI日报表的应用程序编程接口处理逻辑为:针对当天,根据AQI日数据表中参与AQI计算的参数的浓度值,计算上一天的AQI数据,并生成AQI日报表。
需要说明的是,上述两个原始计划任务可并行执行。
示例二、采用基于Quartz服务的计划任务处理方法处理远程校准计划任务
在环境质量监测系统中,可能存在由于设备的测试精度不满足测试精度要求,因此,使得获取到的数据不满足测试要求的情况。为了使得获取到的数据满足测试要求,需要根据预设时间计划向设备发送校准指令,以使设备根据校准指令进行校准。现设定原计划任务为校准指令生成任务。
基于Quartz服务获取校准指令生成任务的应用程序编程接口地址和预设时间计划。基于Quartz服务根据预设时间计划,生成Cron表达式。基于Quartz服务将校准指令生成任务的应用程序编程接口地址和Cron表达式作为校准指令生成任务的计划信息并存储。
基于Quartz服务获取与校准指令生成任务对应的计划信息,该计划信息包括校准指令生成任务的应用程序编程接口地址和Cron表达式。基于Quartz服务解析该Cron表达式,得到各执行时间。基于Quartz服务控制与校准指令生成任务对应的线程每当系统时间达到各执行时间,则根据应用程序编程接口地址调用对应的应用程序编程接口以执行校准指令生成任务,从而实现定时远程校准设备的目的。需要说明的是,校准指令生成任务的应用程序编程接口可由ASP.net平台进行程序开发,Quartz服务可由C#语言编写。
示例三、采用基于Quartz服务的计划任务处理方法处理报警推送计划任务
现设定原计划任务为报警推送任务。基于Quartz服务获取报警推送任务的应用程序编程接口地址和预设时间计划。基于Quartz服务根据预设时间计划,生成Cron表达式。基于Quartz服务将报警推送任务的应用程序编程接口地址和Cron表达式作为报警推送任务的计划信息并存储。
基于Quartz服务获取与报警推送任务对应的计划信息,该计划信息包括报警推送任务的应用程序编程接口地址和Cron表达式。基于Quartz服务解析该Cron表达式,得到各执行时间。基于Quartz服务控制与报警推送任务对应的线程每当系统时间达到各执行时间,则根据应用程序编程接口地址调用对应的应用程序编程接口以执行报警推送任务。其中,报警推送任务的应用程序编程接口的处理逻辑为:获取分钟数据表中各个环境监测站点的各个参数的分钟数据均值。针对每个环境监测站点所采集的每个参数的参数值,如果在预设时长内未出现与该参数的均值一致的参数值,则可说明该环境监测站点的该参数异常,并生成报警记录。如果当前时间属于推送时间范围,则可将该报警记录发送给用户,以使用户获知参数异常情况,以便可以及时采取应对措施。需要说明的是,报警推送任务的应用程序编程接口可由ASP.net平台进行程序开发,Quartz服务可由C#语言编写。分钟数据表可来自于SQLServer数据库。
示例四、采用基于Quartz服务的计划任务处理方法处理基础数据生成计划任务
在环境监测系统中,基础数据的生成至关重要。基础数据可包括有分钟数据、小时数据、日数据、月数据、年数据和臭氧数据等。现设定原始计划任务的个数为五个,分别为分钟数据表、小时数据表、日数据表、月数据表和臭氧数据表。分钟数据表的预设时间计划为每分钟执行。小时数据表的预设时间计划为每小时执行。日数据表的预设时间计划为每日凌晨执行。月数据表的预设时间计划为每月初执行。臭氧数据表的预设时间计划为每小时执行。
针对日数据表而言,基于Quartz服务获取日数据表的应用程序编程接口地址和预设时间计划。基于Quartz服务根据预设时间计划,生成Cron表达式。基于Quartz服务将日数据表的应用程序编程接口地址和Cron表达式作为日数据表的计划信息并存储。
基于Quartz服务获取与日数据表对应的计划信息,该计划信息包括日数据表的应用程序编程接口地址和Cron表达式。基于Quartz服务解析该Cron表达式,得到各执行时间。基于Quartz服务控制与日数据表对应的线程每当系统时间达到各执行时间,则根据应用程序编程接口地址调用对应的应用程序编程接口以执行日数据表。其中,日数据表的应用程序编程接口处理逻辑为:根据小时数据,计算日数据的均值,并将日数据的均值存储至日数据表。需要说明的是,日数据表的应用程序编程接口可由ASP.net平台进行程序开发,Quartz服务可由C#语言编写。还需要说明的是,分钟数据表的应用程序编程接口的处理逻辑为:每分钟获取数据,并存储至分钟数据表。小时数据表的应用程序编程接口的处理逻辑为:根据分钟数据,计算小时数据的均值,并将小时数据的均值存储至小时数据表。月数据表的应用程序编程接口的处理逻辑为:根据日数据,计算月数据的均值,并将月数据的均值存储至月数据表。臭氧数据表的应用程序编程接口的处理逻辑为:根据臭氧小时数据,计算8个小时的臭氧数据的均值,并将臭氧数据的均值存储至臭氧数据表。针对分钟数据表、小时数据表、月数据表和臭氧数据表的处理过程可参见日数据表,在此不再具体赘述。
本实施例的技术方案,由于各线程的执行各原始计划任务均由Quartz服务控制,因此,实现了对各计划任务的统一管理。并且,通过多线程可支持各原始计划任务并发执行,从而提高了计划任务的执行效率。
图5为本发明实施例提供的一种基于Quartz服务的计划任务处理装置的结构示意图,本实施例可适用于在对各计划任务的统一管理的基础上,提高计划任务的执行效率的情况,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于设备中,例如典型的是计算机等。如图5所示,该装置具体包括:
计划信息获取模块310,用于基于Quartz服务获取与各原始计划任务对应的计划信息,每个计划信息包括应用程序编程接口地址和Cron表达式。
执行时间确定模块320,用于基于Quartz服务解析各Cron表达式,得到各执行时间。
原始计划任务执行模块330,用于针对每个原始计划任务,基于Quartz服务控制线程每当系统时间达到各执行时间,则根据应用程序编程接口地址调用对应的应用程序编程接口以执行原始计划任务。
本实施例的技术方案,通过基于Quartz服务获取与各原始计划任务对应的计划信息,每个计划信息包括应用程序编程接口地址和Cron表达式,基于Quartz服务解析各Cron表达式,得到各执行时间,针对每个原始计划任务,基于Quartz服务控制线程每当系统时间达到各执行时间,则根据应用程序编程接口地址调用对应的应用程序编程接口以执行原始计划任务。上述由于各线程的执行各原始计划任务均由Quartz服务控制,因此,实现了对各计划任务的统一管理。并且,通过多线程可支持各原始计划任务并发执行,从而提高了计划任务的执行效率。
可续的,在上述技术方案的基础上,该装置具体还可以包括:
接口地址和时间获取模块,用于基于Quartz服务获取各原始计划任务的应用程序编程接口地址和预设时间计划。
Cron表达式生成模块,用于针对每个原始计划任务,基于Quartz服务根据预设时间计划,生成Cron表达式。
计划信息存储模块,用于基于Quartz服务将各应用程序编程接口地址和Cron表达式作为计划信息进行存储。
可选的,在上述技术方案的基础上,该装置具体还可以包括:
原始计划任务修改模块,用于基于Quartz服务如果获取到修改指令,修改指令包括各目标计划任务,每个目标计划任务属于所述原始计划任务,则控制各线程暂停执行各所述目标计划任务,根据修改指令对各目标计划任务的应用程序编程接口地址、应用程序编程接口和Cron表达式中的至少一项进行修改,并将修改后的各计划信息进行存储。
原始计划任务删除模块,用于基于Quartz服务如果获取到删除指令,删除指令包括各目标计划任务,每个目标计划任务属于原始计划任务,则控制各线程暂停执行各目标计划任务,并根据删除指令,删除各目标计划任务的计划信息。
待添加计划任务添加模块,用于基于Quartz服务如果获取到添加指令,添加指令包括各待添加计划任务的应用程序编程接口地址和预设时间计划,则根据添加指令确定各待添加计划任务的计划信息并存储。
可选的,在上述技术方案的基础上,该装置具体还可以包括:
修改指令生成模块,用于基于Quartz服务如果确定各原始计划任务的执行结果与预设结果不一致,则将与预设结果不一致的各执行结果存储至日志文件并生成修改指令。
可选的,在上述技术方案的基础上,该装置具体还可以包括:
执行时间存储模块,用于基于Quartz服务将各执行时间存储至日志文件。
可选的,在上述技术方案的基础上,该装置具体还可以包括:
Quartz服务配置信息获取模块,用于获取Quartz服务配置信息。
Quartz服务配置模块,用于根据Quartz服务配置信息,配置Quartz服务。
本发明实施例所提供的配置于设备的基于Quartz服务的计划任务处理装置可执行本发明任意实施例所提供的应用于设备的基于Quartz服务的计划任务处理方法,具备执行方法相应的功能模块和有益效果。
图6为本发明实施例提供的一种设备的结构示意图。图6显示的设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图6所示,本发明实施例提供的设备,包括处理器31、存储器32、输入装置33和输出装置34;设备中处理器31的数量可以是一个或多个,图6中以一个处理器31为例;设备中的处理器31、存储器32、输入装置33和输出装置34可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器32作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于Quartz服务的计划任务处理方法对应的程序指令/模块(例如,基于Quartz服务的计划任务处理装置中的计划信息获取模块310、执行时间确定模块320和原始计划任务执行模块330)。处理器31通过运行存储在存储器32中的软件程序、指令以及模块,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的应用于设备的基于Quartz服务的计划任务处理方法。
存储器32可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器32可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器32可进一步包括相对于处理器31远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置33可用于接收用户输入的数字或字符信息,以产生与设备的用户设置以及功能控制有关的键信号输入。输出装置34可包括显示屏等显示设备。
当然,本领域技术人员可以理解,处理器还可以实现本发明任意实施例所提供应用于设备的基于Quartz服务的计划任务处理方法的技术方案。该设备的硬件结构以及功能可参见实施例的内容解释。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的一种基于Quartz服务的计划任务处理方法,该方法包括:
基于Quartz服务获取与各原始计划任务对应的计划信息,每个计划信息包括应用程序编程接口地址和Cron表达式。
基于Quartz服务解析各Cron表达式,得到各执行时间。
针对每个原始计划任务,基于Quartz服务控制线程每当系统时间达到各执行时间,则根据应用程序编程接口地址调用对应的应用程序编程接口以执行原始计划任务。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、射频等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,例如C语言和Python等。程序代码可以在计算机或服务器上执行。
当然,本发明实施例所提供的一种计算机可读存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的设备的基于Quartz服务的计划任务处理方法的相关操作。对存储介质的介绍可参见实施例中的内容解释。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于Quartz服务的计划任务处理方法,其特征在于,包括:
基于Quartz服务获取与各原始计划任务对应的计划信息,每个所述计划信息包括应用程序编程接口地址和Cron表达式;
基于所述Quartz服务解析各所述Cron表达式,得到各执行时间;
针对每个所述原始计划任务,基于所述Quartz服务控制线程每当系统时间达到各所述执行时间,则根据所述应用程序编程接口地址调用对应的应用程序编程接口以执行所述原始计划任务。
2.根据权利要求1所述的方法,其特征在于,所述基于Quartz服务获取与各原始计划任务对应的计划信息之前,还包括:
基于Quartz服务获取各原始计划任务的应用程序编程接口地址和预设时间计划;
针对每个所述原始计划任务,基于所述Quartz服务根据所述预设时间计划,生成Cron表达式;
基于所述Quartz服务将各所述应用程序编程接口地址和各所述Cron表达式作为各所述原始计划任务的计划信息并存储。
3.根据权利要求2所述的方法,其特征在于,所述针对每个所述原始计划任务,基于所述Quartz服务控制线程每当系统时间达到各所述执行时间,则根据所述应用程序编程接口地址调用对应的应用程序编程接口以执行所述原始计划任务之后,还包括:
基于所述Quartz服务如果获取到修改指令,所述修改指令包括各目标计划任务,每个所述目标计划任务属于所述原始计划任务,则控制各所述线程暂停执行各所述目标计划任务,根据所述修改指令对各所述目标计划任务的应用程序编程接口地址、应用程序编程接口和Cron表达式中的至少一项进行修改,并将修改后的各计划信息进行存储;
基于所述Quartz服务如果获取到删除指令,所述删除指令包括各目标计划任务,每个所述目标计划任务属于所述原始计划任务,则控制各所述线程暂停执行各所述目标计划任务,并根据所述删除指令,删除各所述目标计划任务的计划信息;
基于所述Quartz服务如果获取到添加指令,所述添加指令包括各待添加计划任务的应用程序编程接口地址和预设时间计划,则根据所述添加指令确定各所述待添加计划任务的计划信息并存储。
4.根据权利要求1或2所述的方法,其特征在于,所述针对每个所述原始计划任务,基于所述Quartz服务控制线程每当系统时间达到各所述执行时间,则根据所述应用程序编程接口地址调用对应的应用程序编程接口以执行所述原始计划任务之后,还包括:
基于所述Quartz服务如果确定各所述原始计划任务的执行结果与预设结果不一致,则将与预设结果不一致的各所述执行结果存储至日志文件并生成修改指令。
5.根据权利要求1或2所述的方法,其特征在于,所述基于所述Quartz服务解析各所述Cron表达式,得到各执行时间之后,还包括:
基于所述Quartz服务将各所述执行时间存储至日志文件。
6.根据权利要求1或2所述的方法,其特征在于,所述基于Quartz服务获取各原始计划任务的应用程序编程接口地址和预设时间计划之前,还包括:
获取Quartz服务配置信息;
根据所述Quartz服务配置信息,配置Quartz服务。
7.一种基于Quartz服务的计划任务处理装置,其特征在于,包括:
计划信息获取模块,用于基于Quartz服务获取与各原始计划任务对应的计划信息,每个所述计划信息包括应用程序编程接口地址和Cron表达式;
执行时间确定模块,用于基于所述Quartz服务解析各所述Cron表达式,得到各执行时间;
原始计划任务执行模块,用于针对每个所述原始计划任务,基于所述Quartz服务控制线程每当系统时间达到各所述执行时间,则根据所述应用程序编程接口地址调用对应的应用程序编程接口以执行所述原始计划任务。
8.根据权利要求7所述的装置,其特征在于,还包括:
接口地址和时间获取模块,用于基于Quartz服务获取各原始计划任务的应用程序编程接口地址和预设时间计划;
Cron表达式生成模块,用于针对每个所述原始计划任务,基于所述Quartz服务根据所述预设时间计划,生成Cron表达式;
计划信息存储模块,用于基于所述Quartz服务将各所述应用程序编程接口地址和所述Cron表达式作为计划信息进行存储。
9.一种设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6任一所述的方法。
CN201911212296.2A 2019-12-02 2019-12-02 基于Quartz服务的计划任务处理方法、装置、设备及介质 Active CN111143043B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911212296.2A CN111143043B (zh) 2019-12-02 2019-12-02 基于Quartz服务的计划任务处理方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911212296.2A CN111143043B (zh) 2019-12-02 2019-12-02 基于Quartz服务的计划任务处理方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN111143043A true CN111143043A (zh) 2020-05-12
CN111143043B CN111143043B (zh) 2021-08-10

Family

ID=70517427

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911212296.2A Active CN111143043B (zh) 2019-12-02 2019-12-02 基于Quartz服务的计划任务处理方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN111143043B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111708625A (zh) * 2020-06-16 2020-09-25 中国建设银行股份有限公司 多用户任务执行方法、装置、设备及存储介质
CN112597131A (zh) * 2020-12-25 2021-04-02 广州趣丸网络科技有限公司 一种分布式脚本控制方法及相关装置
CN113377518A (zh) * 2021-07-05 2021-09-10 四川新网银行股份有限公司 一种分布式任务定时调度方法和装置
CN113742044A (zh) * 2021-09-09 2021-12-03 平安科技(深圳)有限公司 定时任务管理方法、装置、设备及存储介质
CN113760529A (zh) * 2021-01-15 2021-12-07 北京沃东天骏信息技术有限公司 接口执行方法、装置、设备和可读存储介质
CN113918172A (zh) * 2021-09-30 2022-01-11 平安养老保险股份有限公司 基于Quartz的版本发布方法、装置、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1862575A (zh) * 2005-08-19 2006-11-15 华为技术有限公司 计划调度定时任务的方法
CN101887381A (zh) * 2010-06-22 2010-11-17 北京伟库电子商务科技有限公司 基于Quartz框架的配置定时任务的方法和装置
US20140223440A1 (en) * 2012-12-28 2014-08-07 Sunedison, Inc. Methods and systems for deterministic and multithreaded script objects and script engine
CN105824695A (zh) * 2016-03-18 2016-08-03 浪潮软件集团有限公司 一种定时任务调度插件Quartz使用
CN106201694A (zh) * 2016-07-13 2016-12-07 北京农信互联科技有限公司 一种分布式系统下执行定时任务的配置方法及系统
CN106775985A (zh) * 2016-12-26 2017-05-31 中国建设银行股份有限公司 一种批处理任务调度方法及装置
CN107704315A (zh) * 2017-03-31 2018-02-16 广东网金控股股份有限公司 一种基于Quartz的定时任务调度服务框架及方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1862575A (zh) * 2005-08-19 2006-11-15 华为技术有限公司 计划调度定时任务的方法
CN101887381A (zh) * 2010-06-22 2010-11-17 北京伟库电子商务科技有限公司 基于Quartz框架的配置定时任务的方法和装置
US20140223440A1 (en) * 2012-12-28 2014-08-07 Sunedison, Inc. Methods and systems for deterministic and multithreaded script objects and script engine
CN105824695A (zh) * 2016-03-18 2016-08-03 浪潮软件集团有限公司 一种定时任务调度插件Quartz使用
CN106201694A (zh) * 2016-07-13 2016-12-07 北京农信互联科技有限公司 一种分布式系统下执行定时任务的配置方法及系统
CN106775985A (zh) * 2016-12-26 2017-05-31 中国建设银行股份有限公司 一种批处理任务调度方法及装置
CN107704315A (zh) * 2017-03-31 2018-02-16 广东网金控股股份有限公司 一种基于Quartz的定时任务调度服务框架及方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111708625A (zh) * 2020-06-16 2020-09-25 中国建设银行股份有限公司 多用户任务执行方法、装置、设备及存储介质
CN112597131A (zh) * 2020-12-25 2021-04-02 广州趣丸网络科技有限公司 一种分布式脚本控制方法及相关装置
CN112597131B (zh) * 2020-12-25 2024-07-30 广州趣丸网络科技有限公司 一种分布式脚本控制方法及相关装置
CN113760529A (zh) * 2021-01-15 2021-12-07 北京沃东天骏信息技术有限公司 接口执行方法、装置、设备和可读存储介质
CN113377518A (zh) * 2021-07-05 2021-09-10 四川新网银行股份有限公司 一种分布式任务定时调度方法和装置
CN113742044A (zh) * 2021-09-09 2021-12-03 平安科技(深圳)有限公司 定时任务管理方法、装置、设备及存储介质
CN113918172A (zh) * 2021-09-30 2022-01-11 平安养老保险股份有限公司 基于Quartz的版本发布方法、装置、设备及介质

Also Published As

Publication number Publication date
CN111143043B (zh) 2021-08-10

Similar Documents

Publication Publication Date Title
CN111143043B (zh) 基于Quartz服务的计划任务处理方法、装置、设备及介质
US9552229B2 (en) Systems and methods for task scheduling
CN112181621B (zh) 一种任务调度系统、方法、设备及存储介质
CN111861235B (zh) 任务流程编排方法及装置、电子设备
US20110119680A1 (en) Policy-driven schema and system for managing data system pipelines in multi-tenant model
CN101887381A (zh) 基于Quartz框架的配置定时任务的方法和装置
CN110569090A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN102663543A (zh) 一种用于企业数据统一平台的调度系统
US20120123949A1 (en) Method and system to automatically modify task status in a project management system via keywords in source code version control commit logs
US11899619B2 (en) Approaches for managing data retention lifecycle
CN115374102A (zh) 数据处理方法及系统
CN111708625A (zh) 多用户任务执行方法、装置、设备及存储介质
CN114299764B (zh) 民航航班时刻计划与预先飞行计划联动变更一致性方法
CN113742044A (zh) 定时任务管理方法、装置、设备及存储介质
US20110010703A1 (en) Delivery system, server device, terminal device, and delivery method
CN114924858A (zh) 任务调度方法及装置、存储介质及电子设备
CN110764747A (zh) 基于Airflow的数据计算调度方法
CN111754204A (zh) 用于rpa流程执行端的流程编组方法、装置、设备及介质
CN113098854B (zh) 任务编排方法、系统、存储介质和电子设备
CN116431311A (zh) 一种任务调度方法以及相关系统
CN110851256A (zh) 一种基于电力大数据的数据计算调度方法
CN116028479A (zh) 一种数据对账系统、方法、设备及存储介质
US20180341521A1 (en) Managing job schedules
CN115658702A (zh) 数据的处理方法、装置、电子设备及可读存储介质
WO2023136847A1 (en) Correlation engine and policy manager (cpe), method and computer program product

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
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Plan task processing method, device, equipment, and medium based on Quartz service

Granted publication date: 20210810

Pledgee: Agricultural Bank of China Tianjin Nankai Branch

Pledgor: TIANJIN TONGYANG TECHNOLOGY DEVELOPMENT Co.,Ltd.

Registration number: Y2024120000065

PE01 Entry into force of the registration of the contract for pledge of patent right