CN116431311A - 一种任务调度方法以及相关系统 - Google Patents

一种任务调度方法以及相关系统 Download PDF

Info

Publication number
CN116431311A
CN116431311A CN202310467014.3A CN202310467014A CN116431311A CN 116431311 A CN116431311 A CN 116431311A CN 202310467014 A CN202310467014 A CN 202310467014A CN 116431311 A CN116431311 A CN 116431311A
Authority
CN
China
Prior art keywords
information
task
date
target task
target
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
Application number
CN202310467014.3A
Other languages
English (en)
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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology 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 Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN202310467014.3A priority Critical patent/CN116431311A/zh
Publication of CN116431311A publication Critical patent/CN116431311A/zh
Pending legal-status Critical Current

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/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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • G06Q10/1093Calendar-based scheduling for persons or groups
    • G06Q10/1097Task assignment
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供了一种任务调度方法以及相关系统,该方法应用于任务调度系统,该方法包括:获取目标任务的触发规则,其中,触发规则用于描述目标任务的执行频率,目标任务的执行频率为非周期频率;解析触发规则,查询日历接口,确定目标任务的下一次执行时间,日历接口用于描述日期信息;当到达下一次执行时间时,执行目标任务。该方法解析用户配置的任务触发规则,通过查询日历接口,确定任务的下一次执行时间,从而实现以自定义频率(例如是节假日)触发任务的执行,满足不同场景下的业务需求。

Description

一种任务调度方法以及相关系统
技术领域
本申请涉及任务管理领域,尤其涉及一种任务调度方法、系统、计算机可读存储介质以及计算机程序产品。
背景技术
任务调度是指自动执行任务的过程。其中,任务调度可以包括基于给定时刻执行任务、基于给定的时间间隔执行任务、基于给定的执行次数执行任务等多种调度方式。
针对执行频率为周期频率的任务(即基于给定的时间间隔执行的任务),业界通常在触发器中设定任务的执行时间。例如,用户可以通过cron表达式将任务的执行时间设定为每天0点执行。在到达执行时间时,任务调度器执行该任务,从而完成任务调度。然而,针对执行频率为非周期频率的任务(例如执行频率与节假日相关的任务),由于每次任务的执行时间的间隔不同,上述方法难以满足需求。
发明内容
本申请提供了一种任务调度方法,该方法能够实现按照自定义频率进行任务调度,从而满足多种业务需求。本申请还提供了上述方法对应的系统、计算机可读存储介质以及计算机程序产品。
第一方面,本申请提供了一种任务调度方法。所述方法应用于任务调度系统,所述方法包括:
获取目标任务的触发规则,所述触发规则用于描述所述目标任务的执行频率,所述目标任务的执行频率为非周期频率;
解析所述触发规则,查询日历接口,确定所述目标任务的下一次执行时间,所述日历接口用于描述日期信息;
当到达所述下一次执行时间时,执行所述目标任务。
在一些可能的实现方式中,所述解析所述触发规则,查询日历接口,确定所述目标任务的下一次执行时间,包括:
解析所述触发规则,获得所述目标任务的执行频率;
根据所述执行频率,查询日历接口,确定与所述执行频率对应的多个日期信息;
根据当前日期和所述与所述执行频率对应的多个日期信息,确定所述目标任务的下一次执行时间。
在一些可能的实现方式中,所述获取目标任务的触发规则,包括:
接收用户配置的目标任务的配置信息;
将所述配置信息转换为目标格式,获取所述目标任务的触发规则,所述目标格式能够被多种编程语言解析。
在一些可能的实现方式中,所述多个日期信息包括多个日期的年信息、月信息和日信息,所述根据当前日期和所述与所述执行频率对应的日期信息,确定所述目标任务的下一次执行时间,包括:
获取当前日期的年信息、月信息和日信息;
依次比较所述多个日期的年信息与所述当前日期的年信息、所述多个日期的月信息与所述当前日期的月信息、所述多个日期的日信息与所述当前日期的日信息,确定所述目标任务的下一次执行时间。
在一些可能的实现方式中,所述依次比较所述多个日期的年信息与所述当前日期的年信息、所述多个日期的月信息与所述当前日期的月信息、所述多个日期的日信息与所述当前日期的日信息,确定所述目标任务的下一次执行时间,包括:
比较所述多个日期的年信息与所述当前日期的年信息,从所述多个日期中筛选出第一候选日期,所述第一候选日期的年信息与所述当前日期的年信息满足预设的年信息条件;
比较所述第一候选日期的月信息与所述当前日期的月信息,从所述第一候选日期中筛选出第二候选日期,所述第二候选日期的月信息与所述当前日期的月信息满足预设的月信息条件;
比较所述第二候选日期的日信息与所述当前日期的日信息,将所述第二候选日期中与所述当前日期的日期差最小的候选日期确定为所述目标任务的下一次执行时间。
在一些可能的实现方式中,所述目标格式为轻量级数据交换格式JSON。
在一些可能的实现方式中,所述目标任务的触发规则与节假日有关,所述解析所述触发规则,查询日历接口,确定所述目标任务的下一次执行时间,包括:
解析所述触发规则,查询节假日接口,确定所述目标任务的下一次执行时间,所述节假日接口用于描述节假日信息。
第二方面,本申请提供了一种任务调度系统。所述系统包括任务触发器和任务调度器;
所述任务触发器,用于获取目标任务的触发规则,所述触发规则用于描述所述目标任务的执行频率,所述目标任务的执行频率为非周期频率;
所述任务触发器,还用于解析所述触发规则,查询日历接口,确定所述目标任务的下一次执行时间,所述日历接口用于描述日期信息;
所述任务调度器,用于当到达所述下一次执行时间时,执行所述目标任务。
在一些可能的实现方式中,所述任务触发器具体用于:
解析所述触发规则,获得所述目标任务的执行频率;
根据所述执行频率,查询日历接口,确定与所述执行频率对应的多个日期信息;
根据当前日期和所述与所述执行频率对应的多个日期信息,确定所述目标任务的下一次执行时间。
在一些可能的实现方式中,所述任务触发器具体用于:
接收用户配置的目标任务的配置信息;
将所述配置信息转换为目标格式,获取所述目标任务的触发规则,所述目标格式能够被多种编程语言解析。
在一些可能的实现方式中,所述多个日期信息包括多个日期的年信息、月信息和日信息,所述任务触发器具体用于:
获取当前日期的年信息、月信息和日信息;
依次比较所述多个日期的年信息与所述当前日期的年信息、所述多个日期的月信息与所述当前日期的月信息、所述多个日期的日信息与所述当前日期的日信息,确定所述目标任务的下一次执行时间。
在一些可能的实现方式中,所述任务触发器具体用于:
比较所述多个日期的年信息与所述当前日期的年信息,从所述多个日期中筛选出第一候选日期,所述第一候选日期的年信息与所述当前日期的年信息满足预设的年信息条件;
比较所述第一候选日期的月信息与所述当前日期的月信息,从所述第一候选日期中筛选出第二候选日期,所述第二候选日期的月信息与所述当前日期的月信息满足预设的月信息条件;
比较所述第二候选日期的日信息与所述当前日期的日信息,将所述第二候选日期中与所述当前日期的日期差最小的候选日期确定为所述目标任务的下一次执行时间。
在一些可能的实现方式中,所述目标格式为轻量级数据交换格式JSON。
在一些可能的实现方式中,所述目标任务的触发规则与节假日有关,所述任务触发器具体用于:
解析所述触发规则,查询节假日接口,确定所述目标任务的下一次执行时间,所述节假日接口用于描述节假日信息。
第三方面,本申请提供了一种计算机可读存储介质。所述计算机可读存储介质中存储有指令,当其在任务调度系统上运行时,使得所述任务调度系统执行上述第一方面或第一方面的任一种实现方式所述的方法。
第四方面,本申请提供了一种计算机程序产品。所述计算机程序产品包括计算机可读指令,当其在任务调度系统上运行时,使得所述任务调度系统执行上述第一方面或第一方面的任一种实现方式所述的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
基于上述内容描述,可知本申请的技术方案具有如下有益效果:
具体地,该方法应用于任务调度系统。该方法首先获取目标任务的触发规则,该触发规则用于描述目标任务的执行频率,其中,目标任务的执行频率为非周期频率,接着解析该触发规则,查询日历接口,确定目标任务的下一次执行时间,其中,日历接口用于描述日期信息,当到达下一次执行时间时,执行该目标任务。该方法解析用户配置的任务触发规则,通过查询日历接口,确定任务的下一次执行时间,从而实现以自定义频率(例如是节假日)触发任务的执行,满足不同场景下的业务需求。
附图说明
结合附图并参考以下具体实施方式,本申请各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本申请实施例提供的一种任务调度方法的流程示意图;
图2为本申请实施例提供的一种规则配置界面的示意图;
图3为本申请实施例提供的一种任务调度系统的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本申请中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
为了便于理解本申请的技术方案,下面对本申请中具体的应用场景进行说明。
任务调度是指自动执行任务的过程。任务调度可以包括基于给定时刻执行任务、基于给定的时间间隔执行任务、基于给定的执行次数执行任务等多种调度方法。例如,基于给定时刻执行任务可以为在明天中午12点执行任务,基于给定的时间间隔执行任务可以为在每周的周一12点执行任务,基于给定的执行次数执行任务可以为执行该任务5次。
任务调度的实现需要依赖任务触发器。任务触发器中设定有任务的执行条件,当满足执行条件时,任务调度器可以执行该任务。具体地,任务触发器可以包括基于时间的任务触发器和基于事件的任务触发器。基于时间的任务触发器可以在指定时间启动任务,基于事件的任务触发器可以针对某些事件启动任务。
Quartz是一个开源的任务调度框架,利用Quartz可以实现任务调度。在Quartz中,任务触发器分为简单类型的任务触发器SimpleTrigger和表达式类型的任务触发器CronTrigger。SimpleTrigger可以实现简单的任务调度,例如是在特定时间执行任务,或者在特定时间执行任务后,再以特定的时间间隔重复执行该任务。CronTrigger是利用cron表达式实现任务调度的任务触发器,cron表达式可以设定执行任务的时间,从而在设定的任务执行时间执行该任务,例如可以设定为每周五中午12点执行任务。
然而,利用上述方法实现任务调度时,针对执行频率为非周期频率的任务(例如执行频率与节假日相关的任务),由于每次任务的执行时间的间隔不同,上述方法难以满足业务需求。
基于此,本申请实施例提供了一种任务调度方法。具体地,该方法应用于任务调度系统。该方法首先获取目标任务的触发规则,该触发规则用于描述目标任务的执行频率,其中,目标任务的执行频率为非周期频率,接着解析该触发规则,查询日历接口,确定目标任务的下一次执行时间,其中,日历接口用于描述日期信息,当到达下一次执行时间时,执行该目标任务。
该方法解析用户配置的任务触发规则,通过查询日历接口,确定任务的下一次执行时间,从而实现以自定义频率(例如是节假日)触发任务的执行,满足不同场景下的业务需求。
接下来,结合附图对本申请实施例提供的任务调度方法进行详细说明。
参见图1所示的一种任务调度方法的流程示意图,该方法可以由任务调度系统执行,其中,任务调度系统可以是终端,包括但不限于台式机、笔记本电脑或智能手机。在一些可能的实现方式中,任务调度系统也可以是服务器。该方法具体包括如下步骤:
S101:任务调度系统获取目标任务的触发规则。
其中,目标任务的触发规则用于描述该目标任务的执行频率。在本申请实施例中,目标任务的执行频率可以是不固定的非周期频率。例如,触发规则可以为在每月的第一个工作日执行目标任务,由于每个月的第一个工作日的日期不同,该执行频率不固定。
在一些可能的实现方式中,任务调度系统可以接收用户配置的目标任务的配置信息,将该配置信息转换为目标格式,从而获得目标任务的触发规则。
在本申请实施例中,支持可视化的触发规则配置。具体地,用户可以通过规则配置界面对目标任务进行配置,例如可以包括对目标任务的名称、所属系统、执行频率等进行配置。
任务调用系统响应于用户的配置操作,可以获得配置信息,并将配置信息转换为能够被多种编程语言解析的目标格式,从而获取目标任务的触发规则。如此,无需用户自行编写代码,即可完成针对目标任务的配置,便于用户操作。
在一些实施例中,目标格式可以为轻量级数据交换格式(JavaScript ObjectNotation,JSON)。由于JSON格式采用完全独立于编程语言的文本格式来存储和表示数据,易于用户阅读和编写,同时也易于机器解析和生成,可以在多种语言之间进行数据交换,从而有效地提升网络传输效率。
进一步地,任务调度系统还可以将目标任务的触发规则存储在数据库中,从而实现针对目标任务的管理。
S102:任务调度系统解析触发规则,查询日历接口,确定目标任务的下一次执行时间。
其中,日历接口用于描述日期信息。可以理解的是,针对执行频率为周期频率的目标任务而言,任务调度系统可以计算当前日期与执行频率对应的执行日期之间的时间,再对该时间进行倒计时的方式确定下一次执行时间。例如,针对每周一执行的目标任务,任务调度系统可以计算当前日期与下周一、下下周一……之间的时间,再对该时间进行倒计时,当倒计时结束时,执行该目标任务。
然而,针对执行频率为非周期频率的目标任务而言,任务调度系统无法直接确定执行频率对应的执行日期,例如,针对每个月的第一个工作日执行的目标任务,执行时间可能为1月3日、2月1日……,即每一次执行时间之间的间隔不同,任务调度系统无法直接确定执行日期。因此,在本申请实施例中,任务调度系统可以通过查询日历接口的方式,确定目标任务的下一次执行时间。
具体地,任务调度系统可以解析触发规则,获得目标任务的执行频率,接着根据执行频率查询日历接口,确定与执行频率对应的多个日期信息,再根据当前日期和与执行频率对应的多个日期信息,确定目标任务的下一次执行时间。
在本申请实施例中,通过查询日历接口,可以确定与目标任务的执行频率对应的多个日期信息,再根据当前日期,从多个日期信息中确定下一次执行时间。如此,无需多次查询日历接口,提升任务调度的效率。
在一些实施例中,多个日期信息可以包括多个日期的年信息、月信息和日信息。任务调度系统可以获取当前日期的年信息、月信息和日信息,依次比较多个日期的年信息与当前日期的年信息、多个日期的月信息与当前日期的月信息、多个日期的日信息与当前日期的日信息,从而确定目标任务的下一次执行时间。如此,按照年、月、日的顺序,从多个日期中确定下一次执行时间,从而减少比较的次数,节省资源。
具体地,任务调度系统可以比较多个日期的年信息与当前日期的年信息,从多个日期中筛选出第一候选日期,其中,第一候选日期的年信息与当前日期的年信息满足预设的年信息条件。例如,年信息条件可以包括第一候选日期的年信息与当前日期的年信息相同,或者第一候选日期的年信息为当前日期的年信息的下一年。
接着,任务调度系统可以比较第一候选日期的月信息与当前日期的月信息,从第一候选日期中筛选出第二候选日期,其中,第二候选日期的月信息与当前日期的月信息满足预设的月信息条件。例如,月信息条件可以包括第二候选日期的月信息与当前日期的月信息相同,或者第二候选日期的月信息为当前日期的月信息的下一月。
进一步地,任务调度系统可以比较第二候选日期的日信息与当前日期的日信息,将所述第二候选日期中与所述当前日期的日期差最小的候选日期确定为所述目标任务的下一次执行时间。例如,可以是将第二候选日期中在当前日期之后、且与当前日期最接近的日期确定为下一次执行时间。
在本申请实施例中,通过年信息条件和月信息条件对多个日期进行逐步筛选,从而可以快速、准确地确定目标任务的下一次执行时间。
S103:当到达下一次执行时间时,任务调度系统执行目标任务。
具体地,任务调度系统可以存储目标任务的下一次执行时间。例如,任务调度系统可以以表格的方式存储目标任务的下一次执行时间。进一步地,任务调度系统可以持续获取当前时间,并与目标任务的下一次执行时间进行比较,在到达下一次执行时间时,任务调度系统可以对目标任务进行调度,从而执行目标任务。
下面,将结合具体场景对本申请实施例提供的任务调度方法进行说明。
在一些可能的实现方式中,目标任务的触发规则与节假日相关。换言之,目标任务的执行频率受到节假日的影响,为非周期频率。
首先,用户可以通过规则配置界面对目标任务进行配置。参见图2所示的一种规则配置界面的示意图,规则配置界面200包括基本信息配置区域201和触发规则配置区域202。在基本信息配置区域201中,用户可以对任务的名称和任务的所属系统进行配置。例如,名称可以为“任务1”,所属系统可以为“OA管理后端”。在触发规则配置区域202中,用户可以对任务的执行频率进行配置。例如,执行频率可以为“按月”。进一步地,用户可以对按月执行的任务的具体执行频率进行配置。例如,具体执行频率可以为“每月的第一个工作日”。进一步地,用户还可以对任务的定时执行时间进行配置。例如,定时执行时间可以为“12:00:00”。
在进行上述配置后,用户可以点击“确认配置”控件以完成配置。此时,所属系统为OA管理后端的任务1的配置信息为:每月的第一个工作日的12点执行。
在本申请实施例中,响应于用户的配置操作,任务调度系统可以获取目标任务的触发规则,即每月的第一个工作日的12点执行目标任务。
进一步地,任务调度系统可以将配置信息转换JSON,配置信息转换为JSON格式后可以表示为:
{
"rate":{
"everyMonth":false,//是否每月
"months":[0,1],//指定月份
"everyDay":false,//是否每日
"daysOfMonthList":[{
"dayType":1,//1.工作日,2.自然日
"daysOfMonth":[1]//指定日
}]
},
"executionTime":"12:00:00”//指定执行时间
}
任务调度系统通过解析JSON格式的触发规则,确定目标任务的执行频率,根据该执行频率查询日历接口,确定与执行频率对应的多个日期信息。例如,任务调度系统确定的与执行频率对应的多个日期信息(即每月的第一个工作日的日期)为“2023年1月3日”、“2023年2月1日”、“2023年3月1日”、“2023年4月3日”、“2023年5月4日”、“2023年6月1日”、“2023年7月3日”、“2023年8月1日”、“2023年9月1日”、“2023年10月7日”、“2023年11月1日”、“2023年12月1日”等等。
进一步地,任务调度系统可以依次比较当前日期与上述多个日期的年信息、月信息和日信息,从而确定目标任务的下一次执行时间。例如,当前日期为2023年2月8日,任务调度系统可以首先比较年信息,将年信息与当前日期的年信息相同的多个日期确定为第一候选日期,再比较月信息,将月信息与当前日期的月信息相同,或者月信息为当前日期的月信息的下一月的第一候选确定为第二候选日期,即第二候选日期为“2023年2月1日”和“2023年3月1日”,接着比较日信息,由于当前日期的日信息已经超过“2023年2月1日”,因此确定目标任务的下一次执行时间为“2023年3月1日”。
如此,在到达下一次执行时间时,任务调度系统可以执行该目标任务,从而完成目标任务的调度。
基于上述内容描述,本申请实施例提供了一种任务调度方法。该方法首先获取目标任务的触发规则,该触发规则用于描述目标任务的执行频率,接着解析该触发规则,查询日历接口,确定目标任务的下一次执行时间,其中,日历接口用于描述日期信息,当到达下一次执行时间时,执行该目标任务。
该方法解析用户配置的任务触发规则,通过查询日历接口,确定任务的下一次执行时间,从而实现以自定义频率(例如是节假日)触发任务的执行,满足不同场景下的业务需求。
基于本申请实施例提供的上述方法,本申请实施例还提供了与上述方法对应的任务调度系统。描述于本申请实施例中所涉及到的单元/模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元/模块的名称在某种情况下并不构成对该单元/模块本身的限定。
参见图3所示的任务调度系统的结构示意图,该系统300包括:任务触发器301和任务调度器302;
所述任务触发器301,用于获取目标任务的触发规则,所述触发规则用于描述所述目标任务的执行频率,所述目标任务的执行频率为非周期频率;
所述任务触发器301,还用于解析所述触发规则,查询日历接口,确定所述目标任务的下一次执行时间,所述日历接口用于描述日期信息;
所述任务调度器302,用于当到达所述下一次执行时间时,执行所述目标任务。
在一些可能的实现方式中,所述任务触发器301具体用于:
解析所述触发规则,获得所述目标任务的执行频率;
根据所述执行频率,查询日历接口,确定与所述执行频率对应的多个日期信息;
根据当前日期和所述与所述执行频率对应的多个日期信息,确定所述目标任务的下一次执行时间。
在一些可能的实现方式中,所述任务触发器301具体用于:
接收用户配置的目标任务的配置信息;
将所述配置信息转换为目标格式,获取所述目标任务的触发规则,所述目标格式能够被多种编程语言解析。
在一些可能的实现方式中,所述多个日期信息包括多个日期的年信息、月信息和日信息,所述任务触发器301具体用于:
获取当前日期的年信息、月信息和日信息;
依次比较所述多个日期的年信息与所述当前日期的年信息、所述多个日期的月信息与所述当前日期的月信息、所述多个日期的日信息与所述当前日期的日信息,确定所述目标任务的下一次执行时间。
在一些可能的实现方式中,所述任务触发器301具体用于:
比较所述多个日期的年信息与所述当前日期的年信息,从所述多个日期中筛选出第一候选日期,所述第一候选日期的年信息与所述当前日期的年信息满足预设的年信息条件;
比较所述第一候选日期的月信息与所述当前日期的月信息,从所述第一候选日期中筛选出第二候选日期,所述第二候选日期的月信息与所述当前日期的月信息满足预设的月信息条件;
比较所述第二候选日期的日信息与所述当前日期的日信息,将所述第二候选日期中与所述当前日期的日期差最小的候选日期确定为所述目标任务的下一次执行时间。
在一些可能的实现方式中,所述目标格式为轻量级数据交换格式JSON。
在一些可能的实现方式中,所述目标任务的触发规则与节假日有关,所述任务触发器301具体用于:
解析所述触发规则,查询节假日接口,确定所述目标任务的下一次执行时间,所述节假日接口用于描述节假日信息。
根据本申请实施例的任务调度系统300可对应于执行本申请实施例中描述的方法,并且任务调度系统300的各个模块/单元的上述和其它操作和/或功能分别为了实现图1所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请还提供一种计算机可读存储介质,也称作机器可读介质。在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该任务调度系统执行时,使得任务调度系统:获取目标任务的触发规则;解析所述触发规则,查询日历接口,确定所述目标任务的下一次执行时间;当到达所述下一次执行时间时,执行所述目标任务。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置被安装。在该计算机程序被处理装置执行时,执行本申请实施例的方法中限定的上述功能。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本申请的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种任务调度方法,其特征在于,所述方法应用于任务调度系统,所述方法包括:
获取目标任务的触发规则,所述触发规则用于描述所述目标任务的执行频率,所述目标任务的执行频率为非周期频率;
解析所述触发规则,查询日历接口,确定所述目标任务的下一次执行时间,所述日历接口用于描述日期信息;
当到达所述下一次执行时间时,执行所述目标任务。
2.根据权利要求1所述的方法,其特征在于,所述解析所述触发规则,查询日历接口,确定所述目标任务的下一次执行时间,包括:
解析所述触发规则,获得所述目标任务的执行频率;
根据所述执行频率,查询日历接口,确定与所述执行频率对应的多个日期信息;
根据当前日期和所述与所述执行频率对应的多个日期信息,确定所述目标任务的下一次执行时间。
3.根据权利要求1所述的方法,其特征在于,所述获取目标任务的触发规则,包括:
接收用户配置的目标任务的配置信息;
将所述配置信息转换为目标格式,获取所述目标任务的触发规则,所述目标格式能够被多种编程语言解析。
4.根据权利要求2所述的方法,其特征在于,所述多个日期信息包括多个日期的年信息、月信息和日信息,所述根据当前日期和所述与所述执行频率对应的日期信息,确定所述目标任务的下一次执行时间,包括:
获取当前日期的年信息、月信息和日信息;依次比较所述多个日期的年信息与所述当前日期的年信息、所述多个日期的月信息与所述当前日期的月信息、所述多个日期的日信息与所述当前日期的日信息,确定所述目标任务的下一次执行时间。
5.根据权利要求4所述的方法,其特征在于,所述依次比较所述多个日期的年信息与所述当前日期的年信息、所述多个日期的月信息与所述当前日期的月信息、所述多个日期的日信息与所述当前日期的日信息,确定所述目标任务的下一次执行时间,包括:
比较所述多个日期的年信息与所述当前日期的年信息,从所述多个日期中筛选出第一候选日期,所述第一候选日期的年信息与所述当前日期的年信息满足预设的年信息条件;
比较所述第一候选日期的月信息与所述当前日期的月信息,从所述第一候选日期中筛选出第二候选日期,所述第二候选日期的月信息与所述当前日期的月信息满足预设的月信息条件;
比较所述第二候选日期的日信息与所述当前日期的日信息,将所述第二候选日期中与所述当前日期的日期差最小的候选日期确定为所述目标任务的下一次执行时间。
6.根据权利要求3所述的方法,其特征在于,所述目标格式为轻量级数据交换格式JSON。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述目标任务的触发规则与节假日有关,所述解析所述触发规则,查询日历接口,确定所述目标任务的下一次执行时间,包括:
解析所述触发规则,查询节假日接口,确定所述目标任务的下一次执行时间,所述节假日接口用于描述节假日信息。
8.一种任务调度系统,其特征在于,所述系统包括任务触发器和任务调度器;
所述任务触发器,用于获取目标任务的触发规则,所述触发规则用于描述所述目标任务的执行频率;
所述任务触发器,还用于解析所述触发规则,查询日历接口,确定所述目标任务的下一次执行时间,所述日历接口用于描述日期信息;
所述任务调度器,用于当到达所述下一次执行时间时,执行所述目标任务。
9.根据权利要求8所述的系统,其特征在于,所述任务触发器具体用于:
解析所述触发规则,获得所述目标任务的执行频率;
根据所述执行频率,查询日历接口,确定与所述执行频率对应的多个日期信息;
根据当前日期和所述与所述执行频率对应的多个日期信息,确定所述目标任务的下一次执行时间。
10.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当所述计算机可读指令在任务调度系统上运行时,使得所述任务调度系统执行如权利要求1至7中任一项所述的方法。
CN202310467014.3A 2023-04-26 2023-04-26 一种任务调度方法以及相关系统 Pending CN116431311A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310467014.3A CN116431311A (zh) 2023-04-26 2023-04-26 一种任务调度方法以及相关系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310467014.3A CN116431311A (zh) 2023-04-26 2023-04-26 一种任务调度方法以及相关系统

Publications (1)

Publication Number Publication Date
CN116431311A true CN116431311A (zh) 2023-07-14

Family

ID=87088941

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310467014.3A Pending CN116431311A (zh) 2023-04-26 2023-04-26 一种任务调度方法以及相关系统

Country Status (1)

Country Link
CN (1) CN116431311A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118379038A (zh) * 2024-06-25 2024-07-23 中国中金财富证券有限公司 产品投资日历的生成方法、装置、设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118379038A (zh) * 2024-06-25 2024-07-23 中国中金财富证券有限公司 产品投资日历的生成方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
CN109324996A (zh) 日志文件处理方法、装置、计算机设备及存储介质
CN111143043B (zh) 基于Quartz服务的计划任务处理方法、装置、设备及介质
CN109446274A (zh) 大数据平台bi元数据管理的方法和装置
CN116431311A (zh) 一种任务调度方法以及相关系统
CN109298929B (zh) 定时任务执行时间推荐方法、装置、设备和存储介质
CN116069300A (zh) 工作流控制代码生成方法、装置、电子设备及存储介质
US20210182069A1 (en) Dynamic insights extraction and trend prediction
CN115357350A (zh) 任务配置方法、装置、电子设备和计算机可读介质
CN110968371A (zh) 一种数据仓库中工作流的配置方法及系统
CN113127225A (zh) 一种数据处理任务的调度方法、装置和系统
CN111552521A (zh) 应用数据上报方法、装置、服务器及存储介质
CN110609784B (zh) 任务调度方法及系统、存储介质及电子设备
CN113010310B (zh) 作业数据的处理方法、装置和服务器
CN116661778A (zh) 指标自动加工方法、装置、设备及存储介质
CN110727759B (zh) 一种确定语音信息的主题的方法和装置
EP3407191A1 (en) Managing job schedules
CN113377604B (zh) 一种数据处理方法、装置、设备和存储介质
CN116128424A (zh) 数据文件质量检查方法及装置
CN113010159A (zh) 一种基于脚本的任务处理方法和装置
CN111178014A (zh) 一种处理业务流程的方法和装置
US10558683B2 (en) Selection of a start time for a periodic operation
CN111401825B (zh) 一种实例化方法和装置
CN117056175B (zh) 数据处理方法、装置、电子设备及存储介质
CN113360368B (zh) 一种软件性能测试的方法和装置
US20240119847A1 (en) Automated environment for aeronautical information services

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