CN113238849A - 定时任务处理方法、装置、存储介质与电子设备 - Google Patents

定时任务处理方法、装置、存储介质与电子设备 Download PDF

Info

Publication number
CN113238849A
CN113238849A CN202110603563.XA CN202110603563A CN113238849A CN 113238849 A CN113238849 A CN 113238849A CN 202110603563 A CN202110603563 A CN 202110603563A CN 113238849 A CN113238849 A CN 113238849A
Authority
CN
China
Prior art keywords
task
processed
timed
timing
timed task
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
CN202110603563.XA
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.)
Hangzhou Netease Cloud Music Technology Co Ltd
Original Assignee
Hangzhou Netease Cloud Music 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 Hangzhou Netease Cloud Music Technology Co Ltd filed Critical Hangzhou Netease Cloud Music Technology Co Ltd
Priority to CN202110603563.XA priority Critical patent/CN113238849A/zh
Publication of CN113238849A publication Critical patent/CN113238849A/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
    • 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

Landscapes

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

Abstract

本公开实施方式涉及定时任务处理方法、装置、存储介质与电子设备,涉及数据处理技术领域。所述定时任务处理方法包括:从定时任务数据库中获取待处理定时任务;确定待处理定时任务的预期等待时间;将预期等待时间小于预设时间阈值的待处理定时任务,添加至与待处理定时任务类型对应的定时任务队列;当定时任务队列中的多个待处理定时任务同时到达执行时刻时,按照与定时任务队列的队列类型对应的触发规则提示业务方执行所述待处理定时任务。在需要同时触发提示大量待处理定时任务时,可以准时高质量的触发业务方执行定时任务。

Description

定时任务处理方法、装置、存储介质与电子设备
技术领域
本公开的实施方式涉及数据处理技术领域,更具体地,本公开的实施方式涉及定时任务处理方法、定时任务处理装置、计算机存储介质与电子设备。
背景技术
定时任务是各种业务场景中常见的任务类型,定时任务一般包括定时任务的执行时刻和任务内容。
通常情况下,定时任务服务端可以获取业务方的业务场景下的定时任务,并将获取到的定时任务确定为待处理定时任务,在到达待处理定时任务的执行时刻时,定时任务服务端可以提示业务方执行该待处理定时任务。
随着业务场景下定时任务的日渐复杂化,例如,需要在同一时刻执行大量的待处理定时任务,或者,需要保证准时执行待处理定时任务等,业务方对定时任务服务端提出了更高的需求。
发明内容
然而,现有的定时任务处理方案存在触发待处理定时任务不及时,以及需要同时触发大量待处理定时任务,***容易出现故障的问题,导致无法及时提示业务方执行定时任务。
为此,非常需要一种方案,可以保证定时任务服务端及时稳定高效的触发提示业务方执行待处理定时任务。
在本上下文中,本公开的实施方式期望提供一种定时任务处理方法、定时任务处理装置、计算机可读存储介质及电子设备。
根据本公开实施方式的第一方面,提供一种定时任务处理方法,所述方法应用于定时任务服务端,所述方法包括:
从定时任务数据库中获取待处理定时任务;
确定所述待处理定时任务的预期等待时间,所述预期等待时间为所述待处理定时任务的执行时刻与当前时刻的时间差值;
将预期等待时间小于预设时间阈值的待处理定时任务,添加至与待处理定时任务类型对应的定时任务队列;
当所述定时任务队列中的多个所述待处理定时任务同时到达执行时刻时,按照与所述定时任务队列的队列类型对应的触发规则,提示业务方执行所述待处理定时任务。
在一种可选的实施方式中,所述定时任务队列基于业务场景配置,一种任务队列对应一种业务场景,一种任务队列支持同一业务场景下的多种定时任务类型,一种定时任务类型对应一个独立且隔离的所述定时任务队列。
在一种可选的实施方式中,所述方法还包括:
将所述待处理定时任务存储于本地数据库;
在将预期等待时间小于预设时间阈值的待处理定时任务,添加至与所述待处理定时任务对应的定时任务队列之后,所述方法还包括:
将已添加至所述定时任务队列的预期等待时间小于预设时间阈值的待处理定时任务从所述本地数据库中移除。
在一种可选的实施方式中,在将预期等待时间小于预设时间阈值的待处理定时任务从所述本地数据库中移除之后,所述方法还包括:
按照预设周期扫描所述本地数据库中的每个所述待处理定时任务;
当所述待处理定时任务的预期等待时间小于预设时间阈值时,将所述待处理定时任务,添加至与所述待处理定时任务对应的定时任务队列。
在一种可选的实施方式中,所述定时任务队列包括第一类定时任务队列,所述按照与所述定时任务队列的队列类型对应的触发规则,提示业务方执行所述待处理定时任务,包括:
确定所述第一类定时任务队列中到达执行时刻的多个待处理定时任务的触发顺序;
按照所述触发顺序依次提示业务方执行所述待处理定时任务。
在一种可选的实施方式中,所述定时任务队列包括第二类定时任务队列,所述按照与所述定时任务队列的队列类型对应的触发规则,提示业务方执行所述待处理定时任务,包括:
确定所述第二类定时任务队列中到达执行时刻的多个待处理定时任务的任务优先级;
按照与每个所述待处理定时任务对应的所述任务优先级由高到低的顺序,依次提示业务方执行所述待处理定时任务。
在一种可选的实施方式中,所述定时任务队列包括第三类定时任务队列,所述按照与所述定时任务队列的队列类型对应的触发规则,提示业务方执行所述待处理定时任务,包括:
选取多个所述待处理定时任务中的任一所述待处理定时任务作为所述待处理定时任务,提示业务方执行所述待处理定时任务。
在一种可选的实施方式中,所述方法还包括:
在检测到对所述定时任务数据库的调用操作时,得到所述待处理定时任务和所述待处理定时任务的任务类型;
将所述待处理定时任务存储于所述定时任务数据库,并在所述定时任务数据库的日志文件中生成新事件。
在一种可选的实施方式中,所述获取待处理定时任务,包括:
监听所述定时任务数据库的日志文件;
当所述日志文件中有新事件生成时,根据所述新事件从所述定时任务数据库中获取待处理定时任务。
在一种可选的实施方式中,所述将预期等待时间小于预设时间阈值的待处理定时任务,添加至与所述待处理定时任务对应的定时任务队列,包括:
确定所述待处理定时任务的任务类型;
确定与所述任务类型对应的定时任务队列;
将所述待处理定时任务添加至与所述任务类型对应的定时任务队列。
在一种可选的实施方式中,所述任务队列配置于所述定时任务服务端,所述将预期等待时间小于预设时间阈值的待处理定时任务,添加至与所述待处理定时任务对应的定时任务队列,包括:
确定所述待处理定时任务对应的定时任务队列;
确定配置有与所述待处理定时任务对应的所述定时任务队列的所述定时任务服务端;
将所述待处理定时任务添加至所述定时任务服务端中与所述待处理定时任务对应的定时任务队列。
在一种可选的实施方式中,配置有所述待处理定时任务对应的所述定时任务队列的所述定时任务服务端的数量包括多个,所述方法还包括:
在到达所述待处理定时任务的执行时刻时,每个所述定时任务服务端获取所述待处理定时任务的处理标识;
所述提示业务方执行所述待处理定时任务,包括:
目标定时任务服务端提示业务方执行所述待处理定时任务,所述目标定时任务服务端为配置有所述待处理定时任务对应的所述定时任务队列的多个所述定时任务服务端中,唯一一个成功获取所述处理标识的所述定时任务服务端。
在一种可选的实施方式中,所述提示业务方执行所述待处理定时任务,包括:
生成关于所述待处理定时任务的提示信息;
向所述业务方发送关于所述待处理定时任务的提示信息;或者,
向所述业务方发送所述待处理定时任务。
在一种可选的实施方式中,所述任务队列配置于业务方服务端,所述将预期等待时间小于预设时间阈值的待处理定时任务,添加至与所述待处理定时任务对应的定时任务队列,包括:
确定所述待处理定时任务对应的定时任务队列;
将所述待处理定时任务添加至所述业务方服务端中与所述待处理定时任务对应的定时任务队列。
在一种可选的实施方式中,所述提示业务方执行所述待处理定时任务,包括:
调用所述业务方的消息消费方法执行所述待处理定时任务。
根据本公开实施方式的第二方面,提供一种定时任务处理装置,所述装置应用于定时任务服务端,所述装置包括:
获取模块,被配置为从定时任务数据库中获取待处理定时任务;
确定模块,被配置为确定所述待处理定时任务的预期等待时间,所述预期等待时间为所述待处理定时任务的执行时刻与当前时刻的时间差值;
添加模块,被配置为将预期等待时间小于预设时间阈值的待处理定时任务,添加至与所述待处理定时任务对应的定时任务队列;
触发模块,被配置为当所述定时任务队列中的多个所述待处理定时任务同时到达执行时刻时,按照与所述定时任务队列的队列类型对应的触发规则,提示业务方执行所述待处理定时任务。
在一种可选的实施方式中,所述定时任务队列基于业务场景配置,一种任务队列对应一种业务场景,一种任务队列支持同一业务场景下的多种定时任务类型,一种定时任务类型对应一个独立且隔离的所述定时任务队列。
在一种可选的实施方式中,所述装置还包括:
存储模块,被配置为将所述待处理定时任务存储于本地数据库;
移除模块,被配置为将已添加至所述定时任务队列的预期等待时间小于预设时间阈值的待处理定时任务从所述本地数据库中移除。
在一种可选的实施方式中,所述装置还包括:
扫描模块,被配置为按照预设周期扫描所述本地数据库中的每个所述待处理定时任务;
所述添加模块,被配置为当所述待处理定时任务的预期等待时间小于预设时间阈值时,将所述待处理定时任务,添加至与所述待处理定时任务对应的定时任务队列。
在一种可选的实施方式中,所述定时任务队列包括第一类定时任务队列,所述触发模块,被配置为:
确定所述第一类定时任务队列中到达执行时刻的多个待处理定时任务的触发顺序;
按照所述触发顺序依次提示业务方执行所述待处理定时任务。
在一种可选的实施方式中,所述定时任务队列包括第二类定时任务队列,所述触发模块,被配置为:
确定所述第二类定时任务队列中到达执行时刻的多个待处理定时任务的任务优先级;
按照与每个所述待处理定时任务对应的所述任务优先级由高到低的顺序,依次提示业务方执行所述待处理定时任务。
在一种可选的实施方式中,所述定时任务队列包括第三类定时任务队列,所述触发模块,被配置为:
选取多个所述待处理定时任务中的任一所述待处理定时任务作为所述待处理定时任务,提示业务方执行所述待处理定时任务。
在一种可选的实施方式中,所述装置还包括:
所述获取模块,被配置为在检测到对所述定时任务数据库的调用操作时,得到所述待处理定时任务和所述待处理定时任务的任务类型;
处理模块,被配置为将所述待处理定时任务存储于所述定时任务数据库,并在所述定时任务数据库的日志文件中生成新事件。
在一种可选的实施方式中,所述获取模块,被配置为:
监听所述定时任务数据库的日志文件;
当所述日志文件中有新事件生成时,根据所述新事件从所述定时任务数据库中获取待处理定时任务。
在一种可选的实施方式中,所述添加模块,被配置为:
确定所述待处理定时任务的任务类型;
确定与所述任务类型对应的定时任务队列;
将所述待处理定时任务添加至与所述任务类型对应的定时任务队列。
在一种可选的实施方式中,所述任务队列配置于所述定时任务服务端,所述添加模块,被配置为:
确定所述待处理定时任务对应的定时任务队列;
确定配置有与所述待处理定时任务对应的所述定时任务队列的所述定时任务服务端;
将所述待处理定时任务添加至所述定时任务服务端中与所述待处理定时任务对应的定时任务队列。
在一种可选的实施方式中,配置有所述待处理定时任务对应的所述定时任务队列的所述定时任务服务端的数量包括多个,所述装置还包括:
在到达所述待处理定时任务的执行时刻时,每个所述定时任务服务端获取所述待处理定时任务的处理标识;
目标定时任务服务端的触发模块,被配置为提示业务方执行所述待处理定时任务,所述目标定时任务服务端为配置有所述待处理定时任务对应的所述定时任务队列的多个所述定时任务服务端中,唯一一个成功获取所述处理标识的所述定时任务服务端。
在一种可选的实施方式中,所述触发模块,被配置为:
生成关于所述待处理定时任务的提示信息;
向所述业务方发送关于所述待处理定时任务的提示信息;或者,
向所述业务方发送所述待处理定时任务。
在一种可选的实施方式中,所述任务队列配置于业务方服务端,所述添加模块,被配置为:
确定所述待处理定时任务对应的定时任务队列;
将所述待处理定时任务添加至所述业务方服务端中与所述待处理定时任务对应的定时任务队列。
在一种可选的实施方式中,所述触发模块,被配置为:
调用所述业务方的消息消费装置执行所述待处理定时任务。
根据本公开实施方式的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种方法。
根据本公开实施方式的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一种方法。
根据本公开实施方式的方法、装置、计算机可读存储介质及电子设备,对于获取的待处理定时任务,可以将预期等待时间小于预设时间阈值的待处理定时任务,添加至与待处理定时任务类型对应的定时任务队列,以使定时任务队列维护需要即将触发提示业务方去执行的待处理定时任务,减少定时任务队列的数据处理量,防止队列阻塞;当定时任务队列中的多个待处理定时任务同时到达执行时刻时,按照与定时任务队列的队列类型对应的触发规则,提示业务方执行待处理定时任务,可以在同时触发大量待处理定时任务时,避免出现触发延时,以及无法触发业务方执行定时任务的情况,保证业务方的定时任务按时执行。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示出了根据本公开实施方式的***架构的示意图;
图2示出了根据本公开实施方式的一种定时任务处理方法的实施环境示意图;
图3示出了根据本公开实施方式的一种定时任务处理方法的实施环境示意图;
图4示出了根据本公开实施方式的一种定时任务处理方法的流程图;
图5示出了根据本公开实施方式的一种定时任务处理方法的流程图;
图6示出了根据本公开实施方式的一种定时任务处理方法的流程图;
图7示出了根据本公开实施方式的一种定时任务处理装置的示意图;
图8示出了根据本公开实施方式的电子设备的结构图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现为一种***、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本公开的实施方式,提供一种定时任务处理方法、装置、计算机可读存储介质及电子设备。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本公开的若干代表性实施方式,详细阐述本公开的原理和精神。
发明概述
本公开人发现,现有的定时任务服务端,在触发提示业务方执行定时任务的过程中,会出现延迟触发的情况,特别是,在同一时刻有多个待处理定时任务需要触发时,定时任务服务端的并发触发能力差,延误业务方的定时任务执行时间,以及当业务方的业务场景较多,不同业务场景下需要同时触发的待处理定时任务较多时,定时任务服务端内部会为触发各待处理定时任务抢占内部资源,导致定时任务服务端容易出现故障,无法触发提示业务方执行待处理定时任务。
需要说明的是,在本公开实施例中,业务方是定时任务服务端的使用方,同一业务方的业务场景可以包括至少一个,业务场景是具有相似特征的业务(任务)类型的抽象,每种业务场景可以包括多种业务类型或定时任务类型。例如,业务方是音乐平台的曲库管理团队或者直播管理团队;曲库管理团队的业务场景可以包括普通任务场景,优先级任务场景和去重任务场景,其中,普通任务场景下的定时任务类型可以包括歌曲发行定时任务,优先级任务场景下的定时任务类型可以包括专辑发布定时任务,去重任务场景下的定时任务类型可以包括:专辑信息变更任务、歌曲信息变更任务、歌手信息变更任务等。
为了支撑丰富的业务场景,可以基于不同业务场景下任务类型的共性特征,提供三种类型的定时任务队列,并根据任务类型的特征,设置每种类型定时任务队列的触发规则,实现一种任务队列对应一种业务场景,从而可以满足不同业务场景的业务需求。
鉴于上述内容,本公开的基本思想在于:提供一种定时任务处理方法、装置、计算机可读存储介质及电子设备,可以从定时任务数据库中获取待处理定时任务;确定待处理定时任务的预期等待时间,将预期等待时间小于预设时间阈值的待处理定时任务,添加至与待处理定时任务类型对应的定时任务队列,当定时任务队列中的多个待处理定时任务同时到达执行时刻时,按照与定时任务队列的队列类型对应的触发规则,提示业务方执行待处理定时任务。其中,预期等待时间为待处理定时任务的执行时刻与当前时刻的时间差值,预设时间阈值为判断获取的待处理定时任务是否需要被添加至定时任务队列的时间条件。在定时任务处理过程中,可以以更精准的时间触发提示业务方执行定时任务,且同时触发业务场景下的大量待处理定时任务的过程中,可以避免出现触发延时,以及无法触发情况,避免延误业务方的定时任务执行时机,使业务方按时执行定时任务,确保业务方服务用户的使用体验。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
应用场景总览
需要注意的是,下述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
在本公开实施例中,业务方是定时任务服务端的使用方,同一业务方的业务场景可以包括至少一个,业务场景是具有相似特征的业务(任务)类型的抽象,每种业务场景可以包括多种业务类型或定时任务类型。例如,业务方是音乐平台的曲库管理团队或者直播管理团队;曲库管理团队的业务场景可以包括普通任务场景,优先级任务场景和去重任务场景,其中,普通任务场景下的定时任务类型可以包括歌曲发行定时任务,优先级任务场景下的定时任务类型可以包括专辑发布定时任务,去重任务场景下的定时任务类型可以包括:专辑信息变更任务、歌曲信息变更任务、歌手信息变更任务等。
本公开的实施方式,定时任务服务端在获取到待处理定时任务后,可以将待处理定时任务添加至与待处理定时任务类型对应的定时任务队列,在定时任务队列中的多个待处理定时任务同时到达执行时刻时,按照与定时任务队列的队列类型对应的触发规则,提示业务方执行待处理定时任务。避免定时任务服务端出现无法触发业务方执行待处理定时任务的情况,或者出现延迟触发业务方执行待处理定时任务的情况,确保业务方准时执行待处理定时任务。
示例性方法
本公开的示例性实施方式首先提供一种定时任务处理方法。图1示出了该方法运行环境的***架构图。如图1所示,该***架构100可以包括:定时任务服务端110和至少一个业务方的业务方服务端120。
一般情况下,定时任务服务端110和业务方服务端120可以进行交互;其中,定时任务服务端110可以响应于业务方服务端120的调用操作,获取业务方建立的待处理定时任务,定时任务服务端110在获取到待处理定时任务后,可以确定待处理定时任务的预期等待时间,并将预期等待时间小于预设时间阈值的待处理定时任务,添加至与待处理定时任务类型对应的定时任务队列,当定时任务队列中的多个待处理定时任务同时到达执行时刻时,按照与定时任务队列的队列类型对应的触发规则,触发提示业务方服务端120处理待处理定时任务,以使业务方服务端120执行待处理定时任务。
可以理解的是,本示例性实施方式对于定时任务服务端的数量不做限制,如***架构100中的定时任务服务端110和业务方服务端120的可以分别是定时任务服务端集群。为了便于***的管理,可以为不同业务方服务端120配置专门的定时任务服务端110处理对应业务方服务端120的定时任务。
需要说明的是,在本公开实施例中,定时任务服务端可以包括第一定时任务服务端和第二定时任务服务端,当定时任务服务端包括第一定时任务服务端和第二定时任务服务端时,第一定时任务服务端、第二定时任务服务端和业务方服务端可以有两种部署形式:
在第一种定时任务服务端部署形式中,第一定时任务服务端、第二定时任务服务端和业务方服务端独立部署,其中,第一定时任务服务端可以从定时任务数据库中获取待处理定时任务,确定待处理定时任务的预期等待时间,确定预期等待时间小于预设时间阈值的待处理定时任务的待处理定时任务类型,确定与待处理定时任务类型对应的定时任务队列,以及与定时任务队列对应的第二定时任务服务端,将待处理定时任务发送至与任务类型对应的第二定时任务服务端。
第二定时任务服务端可以接收待处理定时任务,将待处理定时任务添加至与待处理定时任务类型对应的定时任务队列,当定时任务队列中的多个待处理定时任务同时到达执行时刻时,按照与定时任务队列的队列类型对应的触发规则,提示业务方的业务方服务端处理待处理定时任务。
示例的,假设第一定时任务服务端与第二定时任务服务端分别集群部署,如图2所示,第一定时任务服务端210可以形成定时器服务端集群(Robin-Server-Cluster,RSC),第二定时任务服务端220可以形成定时器客户端中心化转发集群(Robin-Client-Forward-Cluster,RCFC),其中,第一定时任务服务端210可以包括任务获取模块2101和分发模块2102,任务获取模块2101,用于从定时任务数据库中获取待处理定时任务,并确定待处理定时任务的预期等待时间,确定预期等待时间小于预设时间阈值的待处理定时任务的待处理定时任务类型,确定与待处理定时任务类型对应的定时任务队列,以及与定时任务队列对应的第二定时任务服务端,分发模块2102,用于将待处理定时任务发送至与任务类型对应的第二定时任务服务端202,例如,分发模块2102通过广播的方式,将待处理定时任务广播至符合条件的RCFC机器上。
第二定时任务服务端220可以包括第一任务接收模块2201和任务添加模块2202,其中,任务接收模块2201,用于接收待处理定时任务,任务添加模块2202,用于将待处理定时任务添加至与待处理定时任务类型对应的定时任务队列,并将任务队列设置到内存中,等待定点执行。当定时任务队列中的多个待处理定时任务同时到达执行时刻时,按照与定时任务队列的队列类型对应的触发规则,提示业务方的业务方服务端120处理待处理定时任务。例如,RCFC机器将会根据不同的队列类型,触发不同的转发逻辑,将定时任务通过Nydus发送至业务方。业务方通过消费Nydus的消息,拿到定时任务中的执行参数,并进行业务处理。
在第二种定时任务服务端部署形式中,第一定时任务服务端和业务方服务端120独立部署,第二定时任务服务端中的业务逻辑可以以逻辑数据包的形式运行于业务方服务端120中,例如,作为软件开发工具包(Software Development Kit,SDK)部署在业务方的消费集群中。其中,第一定时任务服务端可以从定时任务数据库中获取待处理定时任务,确定待处理定时任务的预期等待时间,将预期等待时间小于预设时间阈值的待处理定时任务发送至业务方服务端120,业务方服务端120可以接收待处理定时任务,将待处理定时任务添加至与待处理定时任务类型对应的定时任务队列,当定时任务队列中的多个待处理定时任务同时到达执行时刻时,按照与定时任务队列的队列类型对应的触发规则,触发调用业务方服务端的消息消费方法执行待处理定时任务。
示例的,假设第一定时任务服务端与业务方服务端分别集群部署,如图3所示,第一定时任务服务端210可以形成定时器服务端集群(Robin-Server-Cluster,RSC),业务方服务端120可以形成业务方消费集群(Business-Consumer-Cluster,BCC),其中,第一定时任务服务端210包括任务获取模块2101和分发模块2012,任务获取模块2101,用于从定时任务数据库中获取待处理定时任务,并确定待处理定时任务的预期等待时间,分发模块2102,用于将预期等待时间小于预设时间阈值的待处理定时任务发送至业务方服务端120。例如,分发模块2102通过广播的方式,将待处理定时任务广播至符合条件的BCC机器上。
业务方服务端120可以包括第二任务接收模块1201、任务处理模块1202和任务执行模块1203,第二任务接收模块1201,用于接收待处理定时任务,任务处理模块1202将待处理定时任务添加至与待处理定时任务类型对应的定时任务队列,并将任务队列设置到内存中,等待定点执行。当定时任务队列中的多个待处理定时任务同时到达执行时刻时,按照与定时任务队列的队列类型对应的触发规则,调用任务执行模块1203按照业务方服务端的消息消费方法执行待处理定时任务。业务方通过继承相应的Java类,实现相应的方法,即可直接拿到定时任务中的执行参数,并进行业务处理。
需要说明的是,定时任务服务端110包括第一定时任务服务端和第二定时任务服务端时,业务方服务端120可以响应于对部署形式的选择或者配置操作,使定时任务服务端110按照业务方选择的定时任务服务端部署形式提供定时任务处理服务。且定时任务服务端110可以配置监控模块,用于对定时任务服务端的待处理定时任务的处理周期进行监控,在任一定时任务处理环节出现问题时,可以进行故障提示,便于定时任务服务端的运维。
图4示出了一种定时任务处理方法的示例性流程,该方法可以应用于定时任务服务端,该方法可以包括步骤S401至步骤S404:
步骤S401、从定时任务数据库中获取待处理定时任务。
在本公开实施例中,定时任务服务端可以包括定时任务数据库,该定时任务数据库用于存储业务方的待处理定时任务,该定时任务数据库可以包括任务标识、执行时刻和任务内容等字段。定时任务服务端可以在检测到业务方服务端对定时任务数据库的调用操作时,响应于业务方服务端对定时任务数据库的更新操作,得到待处理定时任务。并在定时任务数据库的日志文件中生成新事件,记录对定时任务数据库的更新操作。其中,日志文件可以是Binlog日志文件,更新操作可以是在定时任务数据库中新增待处理定时任务的操作,或者,对定时任务数据库中已有待处理定时任务的修改操作或删除操作。
需要说明的是,定时任务数据库中的执行时刻字段,可以允许业务方设置精度为毫秒级别的执行时刻,满足对执行时刻精度要求较高的业务场景。
在本步骤S401中,从定时任务数据库中获取待处理定时任务的过程可以包括:监听定时任务数据库的日志文件;当日志文件中有新事件生成时,根据新事件从定时任务数据库中获取待处理定时任务。可以在定时任务数据库更新后,立刻获取定时任务数据库中更新的待处理定时任务,需要说明的是,可以通过NDC(Netease Data Canal,网易数据运河)***实时监听定时任务数据库的日志文件。
其中,根据新事件从定时任务数据库中获取待处理定时任务的过程可以包括:确定日志文件中新事件的任务标识,根据任务标识从定时任务数据库中,获取与任务标识一致的待处理定时任务。
步骤S402、确定待处理定时任务的预期等待时间。
在本公开实施例中,在获取到待处理定时任务后,需要将待处理定时任务添加至与待处理定时任务类型对应的定时任务队列,以便于提示业务方执行待处理定时任务,通常情况下,在获取到待处理定时任务后,可以直接将待处理定时任务添加至对应的定时任务队列,但是,如果待处理定时任务的执行时刻与当前时刻的时间差值较大时,待处理定时任务在定时任务队列中需要滞留较长时间,定时任务队列需要消耗资源维护该待处理定时任务,浪费资源,且容易导致定时任务队列堵塞。
为解决上述问题,在本公开实施例中,可以设置预设时间阈值,预设时间阈值为判断获取到的待处理定时任务是否需要被添加至定时任务队列的时间条件。在获取到待处理定时任务后,在本步骤S402中,可以确定待处理定时任务的预期等待时间,其中,预期等待时间为待处理定时任务的执行时刻与当前时刻的时间差值,以便根据该预期等待时间和预设时间阈值,确定是否将待处理定时任务添加至对应的任务队列。
步骤S403、将预期等待时间小于预设时间阈值的待处理定时任务,添加至与待处理定时任务类型对应的定时任务队列。
在本步骤S403中,可以将预期等待时间小于预设时间阈值的待处理定时任务,添加至与待处理定时任务类型对应的定时任务队列,其中,该预设时间阈值可以基于实际需要确定,本公开实施例对此不做限定。示例的,该预设时间阈值可以是15分钟至60分钟之间的任一时长。定时任务队列中待处理定时任务均是即将执行的待处理定时任务,便于定时任务队列中的待处理定时任务的管理。
在一种可选的实施方式中,将预期等待时间小于预设时间阈值的待处理定时任务,添加至与待处理定时任务类型对应的定时任务队列的过程可以包括:确定待处理定时任务的任务类型;确定与任务类型对应的定时任务队列;将待处理定时任务添加至与任务类型对应的定时任务队列。
在一种可选的实施方式中,定时任务数据库中还可以包括任务类型字段,用于记录与待处理定时任务为对应的业务场景下的定时任务类型,业务方服务端在调用定时任务数据库,更新待处理定时任务时,可以配置待处理定时任务的任务类型,定时任务服务端可以在定时任务数据库中获取到待处理定时任务时,将待处理定时任务的任务类型字段存储于本地数据库。则上述确定待处理定时任务的任务类型的过程可以是:通过查询本地数据库确定待处理定时任务的任务类型。
在一种可选的实施方式中,为了便于不同对业务方的不同业务场景下的定时任务进行分类管理,定时任务服务端中的定时任务数据库,不仅可以包括与不同业务方对应的不同定时任务数据库,也可以包括与同一业务方业务场景下的每种定时任务类型对应的不同定时任务数据库,则确定待处理定时任务的任务类型的过程可以是:通过确定存储待处理定时任务的定时任务数据库所属的任务类型,确定待处理定时任务的任务类型。
可以理解的是,在本公开实施例中,在将预期等待时间小于预设时间阈值的待处理定时任务发送至定时任务服务端之后,还需要将已添加至所述定时任务队列的预期等待时间小于预设时间阈值的待处理定时任务从本地数据库中移除。
进一步的,在将预期等待时间小于预设时间阈值的待处理定时任务从本地数据库中移除之后,还可以按照预设周期扫描本地数据库中的每个待处理定时任务;当待处理定时任务的预期等待时间小于预设时间阈值时,将待处理定时任务,添加至与待处理定时任务对应的定时任务队列。可以在获取到待处理定时任务后,将执行时刻与当前时刻的时间差距较大的待处理定时任务保留在本地数据库,减小定时任务队列的数据处理压力。
在一种可选的实施方式中,在本公开实施例中,定时任务服务端集群部署时,对于不同的业务场景,采用不同类型的定时任务队列存储待处理定时任务,在定时任务服务端层面实现对不同业务场景下的定时任务处理的隔离,则在本步骤S403中,将预期等待时间小于预设时间阈值的待处理定时任务,添加至与待处理定时任务对应的定时任务队列的过程可以包括:确定待处理定时任务对应的定时任务队列;确定存储有与待处理定时任务对应的定时任务队列的定时任务服务端;将待处理定时任务添加至定时任务服务端中与待处理定时任务对应的定时任务队列。其中,确定待处理定时任务对应的定时任务队列的过程可以包括:确定待处理定时任务的任务类型;确定与任务类型对应的定时任务队列。
在一种可选的实施方式中,当定时任务处理方法的运行环境包括定时任务服务端和业务方服务端时,其中,定时任务服务端可以集群部署,其中,任一定时任务服务端,用于将预期等待时间小于预设时间阈值的待处理定时任务,添加至与待处理定时任务类型对应的定时任务队列,其余定时任务服务端配置有任务队列,可以理解的是,该定时任务队列可以包括业务方的业务场景下,与每种类型的定时任务对应的定时任务队列。
则在本步骤S403中,任一定时任务服务端将预期等待时间小于预设时间阈值的待处理定时任务,添加至与待处理定时任务类型对应的定时任务队列的过程可以包括:确定待处理定时任务对应的定时任务队列;确定配置有与待处理定时任务对应的定时任务队列的定时任务服务端;将待处理定时任务添加至定时任务服务端中与待处理定时任务对应的定时任务队列,其中,配置有与待处理定时任务对应的定时任务队列的定时任务服务端指的是,用于存储与待处理定时任务的定时任务类型为同类型待处理定时任务的定时任务服务端。
在一种可选的实施方式中,当定时任务处理方法的运行环境包括第一定时任务服务端和业务方服务端时,其中,第一定时任务服务端,用于向业务方服务端发送预期等待时间小于预设时间阈值的待处理定时任务,业务方服务端配置有任务队列,业务方服务端,用于将预期等待时间小于预设时间阈值的待处理定时任务,添加至与待处理定时任务类型对应的定时任务队列。
则在本步骤S403中,业务方服务端将预期等待时间小于预设时间阈值的待处理定时任务,添加至与待处理定时任务类型对应的定时任务队列的过程可以包括:确定待处理定时任务对应的定时任务队列;将待处理定时任务添加至业务方服务端中与待处理定时任务对应的定时任务队列。
步骤S404、当定时任务队列中的多个待处理定时任务同时到达执行时刻时,按照与定时任务队列的队列类型对应的触发规则,提示业务方执行待处理定时任务。
在本公开实施例中,定时任务队列基于业务场景配置,一种任务队列对应一种业务场景,也即满足业务场景的业务需求。业务场景是具有相似特征业务类型的抽象。一种任务队列可以支持同一业务场景下的多种定时任务类型,同一业务场景下的多种定时任务对定时任务的处理需求具有相似性。例如,业务场景A,只需要接收一条通知消息,因此可以构造去重类型的定时任务队列以支持场景A下的各种定时任务类型,如歌曲信息变更定时任务;业务场景B:需要接收多条定时任务提醒,但各个任务的处理有优先级的需求,因此可以构造优先级类型的定时任务队列以支持场景B下的各种定时任务类型,如专辑发布定时任务。并且,一种定时任务类型对应一个独立且隔离的定时任务队列,也即同一业务场景下的多种定时任务,都对应同一种类型的定时任务队列,不同类型的定时任务采用不同的任务队列维护,以此从业务场景层面和任务类型层面做到任务隔离。其中,定时任务队列可以包括第一类定时任务队列、第二类定时任务队列和第三类定时任务队列,其中,第一类定时任务队列可以用于存放普通任务场景下的待处理定时任务,第二类定时任务队列可以用于存放优先级任务场景下的待处理定时任务,第三类定时任务队列可以用于存放去重任务场景下的待处理定时任务,在本步骤S404中,按照与定时任务队列的队列类型对应的触发规则,提示业务方执行待处理定时任务的过程可以有以下几种可选的实现方式:
在一种可选的实现方式中,定时任务队列包括第一类定时任务队列,如图5所示,则按照与定时任务队列的队列类型对应的触发规则,提示业务方执行待处理定时任务的过程可以包括:
步骤S501、确定第一类定时任务队列中到达执行时刻的多个待处理定时任务的触发顺序。
在本步骤S501中,确定第一类定时任务队列中到达执行时刻的多个待处理定时任务的触发顺序的过程可以包括:确定第一类定时任务队列中到达执行时刻的每个待处理定时任务,被添加至第一类定时任务队列的时间戳,按照时间戳由早到晚的顺序排列多个待处理定时任务,得到多个待处理定时任务的触发顺序;或者,按照时间戳由晚到早的顺序排列多个待处理定时任务,得到多个待处理定时任务的触发顺序;或者,按照随机顺序排列多个待处理定时任务,得到多个待处理定时任务的触发顺序。
步骤S502、按照触发顺序依次提示业务方执行待处理定时任务。
在本步骤S502中,可以按照触发顺序依次提示业务方执行待处理定时任务,以使业务方按照触发顺序依次执行每个待处理定时任务。
示例的,由于歌曲发行定时任务在触发过程中并没有非常严格的时间限制,属于普通任务场景,则在本公开实施例中,可以将歌曲发行定时任务添加至第一类定时任务队列。
在一种可选的实现方式中,定时任务队列包括第二类定时任务队列,如图6所示,则按照与定时任务队列的队列类型对应的触发规则,提示业务方执行待处理定时任务的过程可以包括:
步骤S601、确定第二类定时任务队列中到达执行时刻的多个待处理定时任务的任务优先级。
在本公开实施例中,定时任务数据库还可以包括任务优先级字段,用于记录待处理定时任务的优先级,业务方服务端在调用定时任务数据库,更新待处理定时任务时,可以配置待处理定时任务的优先级,在将待处理定时任务添加至第二类定时任务队列时,该待处理定时任务中可以携带其优先级信息。则在本步骤S601中,确定每个待处理定时任务的任务优先级的过程可以是:通过解析每个待处理定时任务,确定待处理定时任务的任务优先级。
步骤S602、按照与每个待处理定时任务对应的任务优先级由高到低的顺序,依次提示业务方执行待处理定时任务。
在本步骤S602中,可以按照与每个待处理定时任务对应的任务优先级由高到低的顺序,依次提示业务方执行待处理定时任务,以使业务方按照任务优先级由高到低的顺序,依次执行每个待处理定时任务。
示例的,由于专辑发布定时任务在触发过程中,需要严格按照专辑的优先级,优先触发优先级较高的待处理定时任务,属于优先级任务场景,则在本公开实施例中,可以将专辑发布定时任务添加至第二类定时任务队列。
在一种可选的实现方式中,定时任务队列包括第三类定时任务队列,则按照与定时任务队列的队列类型对应的触发规则,提示业务方执行待处理定时任务的过程可以包括:选取多个待处理定时任务中的任一待处理定时任务作为待处理定时任务,提示业务方执行待处理定时任务,其中,业务方在获取到关于执行任一待处理定时任务的提示信息后,可以一次性执行与任一待处理定时任务的执行时刻相同的多个待处理定时任务。
示例的,由于信息变更任务,通常属于同一修改目标的多个待处理定时任务(如同一首歌曲的不同字段的定时修改任务,或者,如同一张专辑的不同字段的定时修改任务),当多个待处理定时任务的执行时刻相同时,可以选择任一待处理定时任务触发,提示业务方执行该多个待处理定时任务,属于去重任务场景,则在本公开实施例中,可以将信息变更任务添加至第三类定时任务队列。
在一种可选的实现方式中,若定时任务处理方法的运行环境包括定时任务服务端和业务方服务端,且配置同一类定时任务队列的定时任务服务端的数量可以包括多个,在到达待处理定时任务的执行时刻时,每个定时任务服务端可以获取待处理定时任务的处理标识,则在本步骤S404中,提示业务方执行待处理定时任务的过程可以包括:目标定时任务服务端提示业务方执行待处理定时任务,其中,目标定时任务服务端为配置有待处理定时任务对应的定时任务队列的多个定时任务服务端中,唯一一个成功获取处理标识的定时任务服务端,处理标识可以为待处理定时任务的分布式锁,可以防止多个定时任务服务端都执行提示业务方执行待处理定时任务的过程,造成资源浪费。
其中,提示业务方执行待处理定时任务的过程可以包括:生成关于待处理定时任务的提示信息;向业务方的业务方服务端发送关于待处理定时任务的提示信息;或者,向业务方的业务方服务端发送待处理定时任务。
可以理解的是,在本公开实施例中,若定时任务处理方法的运行环境包括定时任务服务端和业务方服务端,则对于第一类定时任务队列和第二类定时任务队列中的多个待处理定时任务,需要逐一发送关于每个待处理定时任务的提示信息,或者,逐一发送每个待处理定时任务;对于第三类定时任务队列中的多个待处理定时任务,需要发送任一待处理定时任务,或者,发送任务提示信息,该提示信息用于提示业务方服务端同时执行多个待处理定时任务。
在一种可选的实施方式中,若定时任务处理方法的运行环境包括第一定时任务服务端和业务方服务端,则在本步骤S404中,提示业务方执行待处理定时任务的过程可以包括:业务方服务端调用业务方的消息消费方法执行待处理定时任务。
可以理解的是,在本公开实施例中,若定时任务处理方法的运行环境包括第一定时任务服务端和业务方服务端,对于第一类定时任务队列和第二类定时任务队列中的多个待处理定时任务,需要逐一调用业务方的消息消费方法逐一执行待处理定时任务;对于第三类定时任务队列中的多个待处理定时任务,需要调用一次业务方的消息消费方法一次性执行多个待处理定时任务。
综上所述,本公开实施例提供的定时任务处理方法,可以从定时任务数据库中获取待处理定时任务;确定待处理定时任务的预期等待时间;将预期等待时间小于预设时间阈值的待处理定时任务,添加至与待处理定时任务类型对应的定时任务队列;当定时任务队列中的多个待处理定时任务同时到达执行时刻时,按照与定时任务队列的队列类型对应的触发规则,提示业务方执行待处理定时任务。在同一时刻有大量待处理定时任务需要被触执行发时,及时高效稳定的提示业务方执行定时任务。
示例性装置
在介绍了本公开示例性实施方式的方法之后,接下来,参考图7对本公开示例性实施方式的装置进行说明。
本公开实施例提供一种定时任务处理装置,该装置可以应用于定时任务服务端,如图7所示,定时任务处理装置700包括:
获取模块701,被配置为从定时任务数据库中获取待处理定时任务;
确定模块702,被配置为确定待处理定时任务的预期等待时间,预期等待时间为待处理定时任务的执行时刻与当前时刻的时间差值;
添加模块703,被配置为将预期等待时间小于预设时间阈值的待处理定时任务,添加至与待处理定时任务对应的定时任务队列;
触发模块704,被配置为当定时任务队列中的多个待处理定时任务同时到达执行时刻时,按照与定时任务队列的队列类型对应的触发规则,提示业务方执行待处理定时任务。
在一种可选的实施方式中,定时任务队列基于业务场景配置,一种任务队列对应一种业务场景,一种任务队列支持同一业务场景下的多种定时任务类型,一种定时任务类型对应一个独立且隔离的定时任务队列。
在一种可选的实施方式中,如图7所示,定时任务处理装置700还包括:
存储模块705,被配置为将待处理定时任务存储于本地数据库;
移除模块706,被配置为将已添加至定时任务队列的预期等待时间小于预设时间阈值的待处理定时任务从本地数据库中移除。
在一种可选的实施方式中,如图7所示,定时任务处理装置700还包括:
扫描模块707,被配置为按照预设周期扫描本地数据库中的每个待处理定时任务;
添加模块703,被配置为当待处理定时任务的预期等待时间小于预设时间阈值时,将待处理定时任务,添加至与待处理定时任务对应的定时任务队列。
在一种可选的实施方式中,定时任务队列包括第一类定时任务队列,触发模块704,被配置为:
确定第一类定时任务队列中到达执行时刻的多个待处理定时任务的触发顺序;
按照触发顺序依次提示业务方执行待处理定时任务。
在一种可选的实施方式中,定时任务队列包括第二类定时任务队列,触发模块704,被配置为:
确定第二类定时任务队列中到达执行时刻的多个待处理定时任务的任务优先级;
按照与每个待处理定时任务对应的任务优先级由高到低的顺序,依次提示业务方执行待处理定时任务。
在一种可选的实施方式中,定时任务队列包括第三类定时任务队列,触发模块704,被配置为:
选取多个待处理定时任务中的任一待处理定时任务作为待处理定时任务,提示业务方执行待处理定时任务。
在一种可选的实施方式中,如图7所示,定时任务处理装置700还包括:
获取模块701,被配置为在检测到对定时任务数据库的调用操作时,得到待处理定时任务和待处理定时任务的任务类型;
处理模块708,被配置为将待处理定时任务存储于定时任务数据库,并在定时任务数据库的日志文件中生成新事件。
在一种可选的实施方式中,获取模块701,被配置为:
监听定时任务数据库的日志文件;
当日志文件中有新事件生成时,根据新事件从定时任务数据库中获取待处理定时任务。
在一种可选的实施方式中,添加模块703,被配置为:
确定待处理定时任务的任务类型;
确定与任务类型对应的定时任务队列;
将待处理定时任务添加至与任务类型对应的定时任务队列。
在一种可选的实施方式中,任务队列配置于定时任务服务端,添加模块703,被配置为:
确定待处理定时任务对应的定时任务队列;
确定配置有与待处理定时任务对应的定时任务队列的定时任务服务端;
将待处理定时任务添加至定时任务服务端中与待处理定时任务对应的定时任务队列。
在一种可选的实施方式中,配置有待处理定时任务对应的定时任务队列的定时任务服务端的数量包括多个,在到达待处理定时任务的执行时刻时,每个定时任务服务端获取待处理定时任务的处理标识;
目标定时任务服务端的触发模块704,被配置为提示业务方执行待处理定时任务,目标定时任务服务端为配置有待处理定时任务对应的定时任务队列的多个定时任务服务端中,唯一一个成功获取处理标识的定时任务服务端。
在一种可选的实施方式中,触发模块704,被配置为:
生成关于待处理定时任务的提示信息;
向业务方发送关于待处理定时任务的提示信息;或者,
向业务方发送待处理定时任务。
在一种可选的实施方式中,任务队列配置于业务方服务端,添加模块703,被配置为:
确定待处理定时任务对应的定时任务队列;
将待处理定时任务添加至业务方服务端中与待处理定时任务对应的定时任务队列。
在一种可选的实施方式中,触发模块704,被配置为:
调用业务方的消息消费装置执行待处理定时任务。
综上所述,本公开实施例提供的定时任务处理装置,可以从定时任务数据库中获取待处理定时任务;确定待处理定时任务的预期等待时间;将预期等待时间小于预设时间阈值的待处理定时任务,添加至与待处理定时任务类型对应的定时任务队列;当定时任务队列中的多个待处理定时任务同时到达执行时刻时,按照与定时任务队列的队列类型对应的触发规则,提示业务方执行待处理定时任务。在同一时刻有大量待处理定时任务需要被触发执行时,及时高效稳定的提示业务方执行定时任务。
此外,本公开实施方式的其他具体细节在上述方法的发明实施方式中已经详细说明,在此不再赘述。
示例性存储介质
下面对本公开示例性实施方式的存储介质进行说明。
本示例性实施方式中,可以通过程序产品实现上述方法,如可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
该程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RE等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言-诸如Java、C++等,还包括常规的过程式程序设计语言-诸如"C"语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(FAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性电子设备
参考图8对本公开示例性实施方式的电子设备进行说明。
图8显示的电子设备800仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:至少一个处理单元810、至少一个存储单元820、连接不同***组件(包括存储单元820和处理单元810)的总线830、显示单元840。
其中,存储单元存储有程序代码,程序代码可以被处理单元810执行,使得处理单元810执行本说明书上述"示例性方法"部分中描述的根据本公开各种示例性实施方式的步骤。例如,处理单元810可以执行如图4至图6所示的方法步骤等。
存储单元820可以包括易失性存储单元,例如随机存取存储单元(RAM)821和/或高速缓存存储单元822,还可以进一步包括只读存储单元(ROM)823。
存储单元820还可以包括具有一组(至少一个)程序模块825的程序/实用工具824,这样的程序模块825包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以包括数据总线、地址总线和控制总线。
电子设备800也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/O)接口850进行。电子设备800还包括显示单元840,其连接到输入/输出(I/O)接口850,用于进行显示。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
应当注意,尽管在上文详细描述中提及了装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (10)

1.一种定时任务处理方法,其特征在于,所述方法应用于定时任务服务端,所述方法包括:
从定时任务数据库中获取待处理定时任务;
确定所述待处理定时任务的预期等待时间,所述预期等待时间为所述待处理定时任务的执行时刻与当前时刻的时间差值;
将预期等待时间小于预设时间阈值的待处理定时任务,添加至与待处理定时任务类型对应的定时任务队列;
当所述定时任务队列中的多个所述待处理定时任务同时到达执行时刻时,按照与所述定时任务队列的队列类型对应的触发规则,提示业务方执行所述待处理定时任务。
2.根据权利要求1所述的方法,其特征在于,所述定时任务队列基于业务场景配置,一种任务队列对应一种业务场景,一种任务队列支持同一业务场景下的多种定时任务类型,一种定时任务类型对应一个独立且隔离的所述定时任务队列。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述待处理定时任务存储于本地数据库;
在将预期等待时间小于预设时间阈值的待处理定时任务,添加至与所述待处理定时任务对应的定时任务队列之后,所述方法还包括:
将已添加至所述定时任务队列的预期等待时间小于预设时间阈值的待处理定时任务从所述本地数据库中移除。
4.根据权利要求3所述的方法,其特征在于,在将预期等待时间小于预设时间阈值的待处理定时任务从所述本地数据库中移除之后,所述方法还包括:
按照预设周期扫描所述本地数据库中的每个所述待处理定时任务;
当所述待处理定时任务的预期等待时间小于预设时间阈值时,将所述待处理定时任务,添加至与所述待处理定时任务对应的定时任务队列。
5.根据权利要求2所述的方法,其特征在于,所述定时任务队列包括第一类定时任务队列,所述按照与所述定时任务队列的队列类型对应的触发规则,提示业务方执行所述待处理定时任务,包括:
确定所述第一类定时任务队列中到达执行时刻的多个待处理定时任务的触发顺序;
按照所述触发顺序依次提示业务方执行所述待处理定时任务。
6.根据权利要求2所述的方法,其特征在于,所述定时任务队列包括第二类定时任务队列,所述按照与所述定时任务队列的队列类型对应的触发规则,提示业务方执行所述待处理定时任务,包括:
确定所述第二类定时任务队列中到达执行时刻的多个待处理定时任务的任务优先级;
按照与每个所述待处理定时任务对应的所述任务优先级由高到低的顺序,依次提示业务方执行所述待处理定时任务。
7.根据权利要求2所述的方法,其特征在于,所述定时任务队列包括第三类定时任务队列,所述按照与所述定时任务队列的队列类型对应的触发规则,提示业务方执行所述待处理定时任务,包括:
选取多个所述待处理定时任务中的任一所述待处理定时任务作为所述待处理定时任务,提示业务方执行所述待处理定时任务。
8.一种定时任务处理装置,其特征在于,所述装置应用于定时任务服务端,所述装置包括:
获取模块,被配置为从定时任务数据库中获取待处理定时任务;
确定模块,被配置为确定所述待处理定时任务的预期等待时间,所述预期等待时间为所述待处理定时任务的执行时刻与当前时刻的时间差值;
添加模块,被配置为将预期等待时间小于预设时间阈值的待处理定时任务,添加至与所述待处理定时任务对应的定时任务队列;
触发模块,被配置为当所述定时任务队列中的多个所述待处理定时任务同时到达执行时刻时,按照与所述定时任务队列的队列类型对应的触发规则,提示业务方执行所述待处理定时任务。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7任一项所述的方法。
CN202110603563.XA 2021-05-31 2021-05-31 定时任务处理方法、装置、存储介质与电子设备 Pending CN113238849A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110603563.XA CN113238849A (zh) 2021-05-31 2021-05-31 定时任务处理方法、装置、存储介质与电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110603563.XA CN113238849A (zh) 2021-05-31 2021-05-31 定时任务处理方法、装置、存储介质与电子设备

Publications (1)

Publication Number Publication Date
CN113238849A true CN113238849A (zh) 2021-08-10

Family

ID=77135948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110603563.XA Pending CN113238849A (zh) 2021-05-31 2021-05-31 定时任务处理方法、装置、存储介质与电子设备

Country Status (1)

Country Link
CN (1) CN113238849A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760936A (zh) * 2021-09-10 2021-12-07 杭州网易云音乐科技有限公司 定时更新方法、介质、装置和电子设备
CN115297336A (zh) * 2022-07-06 2022-11-04 北京达佳互联信息技术有限公司 任务处理方法、装置及电子设备、存储介质和程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107608770A (zh) * 2017-08-08 2018-01-19 西安交大捷普网络科技有限公司 多任务并发执行处理方法
CN110196761A (zh) * 2019-04-15 2019-09-03 北京达佳互联信息技术有限公司 延迟任务处理方法及装置
CN111045813A (zh) * 2019-12-27 2020-04-21 京北方信息技术股份有限公司 一种任务分发***及方法
CN111221638A (zh) * 2020-01-03 2020-06-02 北京字节跳动网络技术有限公司 并发任务的调度处理方法、装置、设备和介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107608770A (zh) * 2017-08-08 2018-01-19 西安交大捷普网络科技有限公司 多任务并发执行处理方法
CN110196761A (zh) * 2019-04-15 2019-09-03 北京达佳互联信息技术有限公司 延迟任务处理方法及装置
CN111045813A (zh) * 2019-12-27 2020-04-21 京北方信息技术股份有限公司 一种任务分发***及方法
CN111221638A (zh) * 2020-01-03 2020-06-02 北京字节跳动网络技术有限公司 并发任务的调度处理方法、装置、设备和介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760936A (zh) * 2021-09-10 2021-12-07 杭州网易云音乐科技有限公司 定时更新方法、介质、装置和电子设备
CN113760936B (zh) * 2021-09-10 2024-04-05 杭州网易云音乐科技有限公司 定时更新方法、介质、装置和电子设备
CN115297336A (zh) * 2022-07-06 2022-11-04 北京达佳互联信息技术有限公司 任务处理方法、装置及电子设备、存储介质和程序产品
CN115297336B (zh) * 2022-07-06 2024-03-19 北京达佳互联信息技术有限公司 任务处理方法、装置及电子设备、存储介质和程序产品

Similar Documents

Publication Publication Date Title
US8185624B2 (en) Efficient on-demand provisioning of servers for specific software sets
CN110825535B (zh) 一种作业调度的方法和***
US20200319935A1 (en) System and method for automatically scaling a cluster based on metrics being monitored
US20110022861A1 (en) Reducing power consumption in data centers having nodes for hosting virtual machines
US11218386B2 (en) Service ticket escalation based on interaction patterns
US11689641B2 (en) Resiliency control engine for network service mesh systems
CN110750592B (zh) 数据同步的方法、装置和终端设备
CN105760240A (zh) 分布式任务处理方法及装置
CN113238849A (zh) 定时任务处理方法、装置、存储介质与电子设备
US10305817B1 (en) Provisioning system and method for a distributed computing environment using a map reduce process
US20220413937A1 (en) Node management method, device and apparatus, storage medium, and system
WO2018098478A1 (en) System and method for analyzing and associating elements of a computer system by shared characteristics
US12035156B2 (en) Communication method and apparatus for plurality of administrative domains
CN114356521A (zh) 任务调度方法、装置、电子设备及存储介质
CN111046007A (zh) 管理存储***的方法、装置和计算机程序产品
US20230297970A1 (en) Intelligent scheduling of maintenance tasks to minimize downtime
CN113360558B (zh) 数据处理方法、数据处理装置、电子设备及存储介质
CN113407429B (zh) 一种任务处理方法和装置
CN110659125A (zh) 一种分析任务执行方法、装置、***及电子设备
US11461185B2 (en) Event processing
CN110795225B (zh) 一种调度任务的执行方法及***
CN116340011A (zh) 一种基于区块链的事件订阅方法、装置及***
CN113326052A (zh) 业务组件的升级方法、装置、计算机设备和存储介质
US20080059501A1 (en) Method and system for automated process distribution
CN112463616A (zh) 一种面向Kubernetes容器平台的混沌测试方法和装置

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