CN113535353A - 定时任务调度方法、装置和计算机设备 - Google Patents
定时任务调度方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN113535353A CN113535353A CN202110729334.2A CN202110729334A CN113535353A CN 113535353 A CN113535353 A CN 113535353A CN 202110729334 A CN202110729334 A CN 202110729334A CN 113535353 A CN113535353 A CN 113535353A
- Authority
- CN
- China
- Prior art keywords
- external system
- information
- scheduling
- timing task
- registration information
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及调度系统的技术领域,公开了一种定时任务调度方法、装置和计算机设备,通过接收外部系统反馈的定时任务登记信息,并将其存入数据库中计算订阅系统数;根据所述定时任务登记信息,检测定时任务登记信息的时间类型,并根据所述时间类型向外部系统发布调度信息,其中,所述调度信息基于redis发布;接收外部系统反馈的异步响应信息,并根据所述异步响应信息生成完成任务总数;根据所述订阅系统数与所述完成任务总数对定时任务的处理结果进行核对,并判断是否出现异常;这样,能够在分布式的环境下完成各定时任务的调度,且调度信息基于redis发布,这样能够避免因为定时任务的数量过多而降低调度系统运行速率的情况发生。
Description
技术领域
本申请涉及调度系统的技术领域,特别涉及一种定时任务调度方法、装置和计算机设备。
背景技术
在很多业务场景中,需要我们在某一特定的时刻去做某件任务,定时任务解决的就是这种业务场景。java现有的定时任务大多是单机定时任务,其中Quartz可支持分布式集群架构,但Quartz关注点在于定时任务而非数据,并无一套根据数据处理而定制化的流程,总的来说,原生Quartz有以下的不足:(1)配置较为复杂,且调用API的方式操作任务不够智能化;(2)调度逻辑和QuartzJobBean耦合在同一个项目中,在调度定时任务数量逐渐增多的情况下,降低调度系统的性能。
发明内容
本申请的主要目的为提供一种定时任务调度方法,旨在解决现有技术中调度系统配置复杂、在调度定时任务数量增多的情况下,调度系统性能降低的技术问题。
本申请提出一种定时任务调度方法,包括:
向外部系统发布定时任务,并接收外部系统反馈的定时任务登记信息;
检测定时任务登记信息是否合法,若合法,将定时任务登记信息存入数据库中,并计算订阅系统数,其中订阅系统数为所述定时任务登记信息存入所述数据库的数量;
根据所述定时任务登记信息,检测定时任务登记信息的时间类型,并根据所述时间类型向外部系统发布调度信息,其中,所述调度信息基于redis发布,所述时间类型包括在预设时间内调度一次的时间类型,以及在预设时间内调度多次的时间类型;
接收外部系统反馈的异步响应信息,并根据所述异步响应信息生成完成任务总数;
根据所述订阅系统数与所述完成任务总数对定时任务的处理结果进行核对,并根据核对结果判断所述外部系统在处理所述定时任务的过程中是否出现异常;
若出现异常,发出告警信号和/或向指定的外部系统再次发布调度信息。
作为优选,所述向外部系统发布定时任务,并接收外部系统反馈的定时任务登记信息的步骤,包括:
接收外部系统发送的请求信号;
根据外部系统发送的请求信号获取外部系统的传入参数,其中,所述传入参数包括业务类型与消息内容;
根据所述传入参数,组装待发布定时任务的信息频道并生成定时任务的信息流水号;
根据所述待发布定时任务的信息频道与所述定时任务的信息流水号向外部系统发布定时任务;
接收外部系统反馈的定时任务登记信息。
作为优选,所述根据所述定时任务登记信息,检测定时任务登记信息的时间类型,并根据所述时间类型向外部系统发布调度信息的步骤,包括:
根据外部系统反馈的定时任务登记信息,检测所述定时任务登记信息的时间类型;
根据所述时间类型向redis发送触发定时任务通知的异步消息,其中,所述外部系统通过redis接收所述异步消息。
作为优选,所述接收外部系统反馈的异步响应信息,并根据所述异步响应信息生成确认系统数的步骤之前,包括:
根据所述调度信息接收外部系统反馈的接收确认信息,并生成接收确认总数;
判断所述接收确认总数是否小于所述订阅系统数;
若所述接收确认总数小于所述订阅系统数,则自动向未对调度系统反馈接收确认消息的外部系统重新发布调度信息;
接收所述未对调度系统反馈的外部系统,反馈的接收确认信息,并更新接收确认总数。
作为优选,所述根据所述订阅系统数与所述完成任务总数对所述定时任务的处理结果进行核对,并根据核对结果判断所述外部系统在处理所述定时任务的过程中是否出现异常的步骤,包括:
判断完成任务总数是否小于订阅系统数;
若完成任务总数小于订阅系统数,则重新核对接收确认总数与订阅系统数;
若接收确认总数与订阅系统数相等,则确认外部系统在处理定时任务的过程中出现异常。
作为优选,所述向指定的外部系统再次发布调度信息的步骤包括:
获取所述外部系统反馈的定时任务登记信息;
获取所述外部系统反馈的异步响应信息;
将所述定时任务登记信息与所述异步响应信息进行匹配,并对无法匹配到所述异步响应信息的所述定时任务登记信息进行汇总,得到排除列表;
获取所述排除列表中定时任务登记信息的时间类型;
根据所述时间类型向指定的外部系统发出调度信息。
本申请还提供一种定时任务的调度装置,包括:
接收模块:用于向外部系统发布定时任务,并接收外部系统反馈的定时任务登记信息;
检测模块:用于检测定时任务登记信息是否合法,若合法,将定时任务登记信息存入数据库中,并计算订阅系统数,其中订阅系统数为所述定时任务登记信息存入所述数据库的数量;
调度模块:用于根据所述定时任务登记信息,检测定时任务登记信息的时间类型,并根据所述时间类型向外部系统发布调度信息,其中,所述调度信息基于redis发布,所述时间类型包括在预设时间内调度一次的时间类型,以及在预设时间内调度多次的时间类型;
生成模块:用于接收外部系统反馈的异步响应信息,并根据所述异步响应信息生成完成任务总数;
第一判断模块:用于根据所述订阅系统数与所述完成任务总数对定时任务的处理结果进行核对,并根据核对结果判断所述外部系统在处理所述定时任务的过程中是否出现异常;
处理模块:用于若出现异常,发出告警信号和/或向指定的外部系统再次发布调度信息。
作为优选,所述接收模块包括:
第一接收单元:用于接收外部系统发送的请求信号;
第一获取单元:用于根据外部系统发送的请求信号获取外部系统的传入参数,其中,所述传入参数包括业务类型与消息内容;
组装单元:用于根据所述传入参数,组装待发布定时任务的信息频道并生成定时任务的信息流水号;
发布单元:用于根据所述待发布定时任务的信息频道与所述定时任务的信息流水号向外部系统发布定时任务;
第二接收单元:用于接收外部系统反馈的定时任务登记信息。
本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述定时任务调度方法的步骤。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述定时任务调度方法的步骤。
本申请的有益效果为:通过向外部系统发布定时任务,并接收外部系统反馈的定时任务登记信息;检测定时任务登记信息是否合法,若合法,将定时任务登记信息存入数据库中,并计算订阅系统数;根据所述定时任务登记信息,检测定时任务登记信息的时间类型,并根据所述时间类型向外部系统发布调度信息,其中,所述调度信息基于redis发布;接收外部系统反馈的异步响应信息,并根据所述异步响应信息生成完成任务总数;根据所述订阅系统数与所述完成任务总数对定时任务的处理结果进行核对,并判断是否出现异常;若出现异常,发出告警信号和/或向指定的外部系统再次发布调度信息。这样,能够在分布式的环境下完成各定时任务的调度,即每一个定时任务仅会被一个外部系统处理,且调度信息基于redis发布,这样能够避免因为定时任务的数量过多而降低调度系统运行速率的情况发生,便于用户及时发现调度系统与外部系统之间存在的故障问题,并针对该故障问题分析具体原因,从而增强调度系统的运行性能。
附图说明
图1为本申请一实施例的定时任务调度方法流程示意图。
图2为本申请一实施例的定时任务的调度装置结构示意图。
图3为本申请一实施例的计算机设备内部结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
如图1-3所示,本申请提出一种定时任务调度方法,包括:
S1:向外部系统发布定时任务,并接收外部系统反馈的定时任务登记信息;
S2:检测定时任务登记信息是否合法,若合法,将定时任务登记信息存入数据库中,并计算订阅系统数,其中订阅系统数为所述定时任务登记信息存入所述数据库的数量;
S3:根据所述定时任务登记信息,检测定时任务登记信息的时间类型,并根据所述时间类型向外部系统发布调度信息,其中,所述调度信息基于redis发布,所述时间类型包括在预设时间内调度一次的时间类型,以及在预设时间内调度多次的时间类型;
S4:接收外部系统反馈的异步响应信息,并根据所述异步响应信息生成完成任务总数;
S5:根据所述订阅系统数与所述完成任务总数对定时任务的处理结果进行核对,并根据核对结果判断所述外部系统在处理所述定时任务的过程中是否出现异常;
S6:若出现异常,发出告警信号和/或向指定的外部系统再次发布调度信息。
如上述步骤S1所述,向外部系统发布定时任务,并接收外部系统反馈的定时任务登记信息;具体的,调度系统首先根据获取到的参数向外部系统发布定时任务消息,外部系统接收到定时任务消息后,向调度系统发送反馈信息,调度系统接收外部系统反馈的定时任务登记信息,其中,外部系统可以是多个,即调度系统同时向多个外部系统发布定时任务。
如上述步骤S2所述,检测定时任务登记信息是否合法,若合法,将定时任务登记信息存入调度系统的数据库中,并计算订阅系统数;具体的,通过预先设置的条件检查定时任务登记信息是否合法,若合法,则将定时任务登记信息存入数据库中,计算订阅系统数,可通过登记订阅流水表,统计数据库中的各外部系统向调度系统订阅定时任务信息的数量。
如上述步骤S3所述,根据所述定时任务登记信息,检测定时任务登记信息的时间类型,并根据所述时间类型向外部系统发布调度信息,其中,所述调度信息基于redis发布;具体的,调度系统向redis发布调度信息时,多个外部系统均会监听该调度信息,多个外部系统监听到该调度消息以后,均向redis申请分布式锁,由于redis的分布式锁只会被一个外部系统申请到,因此只有申请到了分布式锁的外部系统,才可执行接收到的调度信息,对于未申请到分布式锁的外部系统,则不执行监听到的调度信息,这样,利用redis的互斥处理,可以避免调度信息被重复登记以及重复执行;调度系统发布调度信息时,先检测哪些定时任务还未执行,对于未执行的定时任务的登记信息,可根据定时任务登记信息的时间类型、向redis发布调度信息,例如定时任务登记信息显示的时间为两点时执行,则调度系统向redis发布两点执行的调度信息;其中,定时任务登记信息的时间类型,指的是在预设时间段内仅需要调度一次定时任务的时间类型,例如每天两点处理一次,这时可通过简单的参数例如welcend来调度;以及在预设时间段内需要调度多次定时任务的时间类型,例如每天每隔十分钟处理一次,可以通过crontab参数调用。
如上述步骤S4所述,接收外部系统反馈的异步响应信息,并根据所述异步响应信息生成完成任务总数。具体的当外部系统根据调度信息对定时任务进行处理完成后,会向调度系统反馈异步响应信息,异步响应信息为定时任务的处理情况,调度系统对接收到的异步响应信息的数量进行统计,并生成完成任务总数,这样能够了解到哪些外部系统完成了定时任务的处理工作。需要说明的是,若外部系统在处理定时任务时,发生了故障,则可直接切换到另一台外部系统中,另一台外部系统可通过向redis申请分布式锁,重新处理此次定时任务。
如上述步骤S5所述,根据所述订阅系统数与所述完成任务总数对定时任务的处理结果进行核对,并判断是否出现异常;具体的,接收到外部系统反馈的异步响应信息后,对异步响应信息的数量进行统计,即生成完成任务总数;外部系统若向调度系统反馈了异步响应信息,则代表外部系统处理了定时任务,因此可通过核对完成任务总数与订阅系统数的数目,从而确认各外部系统处理定时任务的具体情况,若数目不能核对上,则代表外部系统在处理定时任务时可能出现了异常。
如上述步骤S6所述,当出现异常时,发出告警信息和/或向指定的外部系统再次发布调度信息,具体的,若完成任务总数小于订阅系统数,则代表发出的定时任务并未被外部系统处理完毕,这时可发出告警信息,此时,调度系统可对定时任务登记信息与异步响应信息进行匹配,获取未匹配成功的定时任务登记信息,并根据未匹配成功的定时任务登记信息,再次向外部系统发布调度信息;此外,用户也可根据告警信息分析未被外部系统处理的定时任务的具体原因,若需要重发,调度系统上设有重发工具,可供用户进行手工重发。
在本实施例中,向外部系统发布定时任务,并接收外部系统反馈的定时任务登记信息的步骤S1包括:
S11:接收外部系统发送的请求信号;
S12:根据外部系统发送的请求信号获取外部系统的传入参数,其中,所述传入参数包括业务类型与消息内容;
S13:根据所述传入参数,组装待发布定时任务的信息频道并生成定时任务的信息流水号;
S14:根据所述待发布定时任务的信息频道与所述定时任务的信息流水号向外部系统发布定时任务;
S15:接收外部系统反馈的定时任务登记信息。
如上述步骤S11-S15所述,实现了向外部系统发布定时任务的目的,其中外部系统可以是多个,即本实施例中,可实现一对多的发布模式。首先,多个外部系统均可向调度系统发送请求订阅定时任务的信号,调度系统根据外部系统发送的请求信号获取外部系统的传入参数,即获取外部系统的业务类型与消息内容,业务类型包括各外部系统的使用的版本号、IP地址、定时任务触发时间、处理时长等等;根据获取到的传入参数,组装待发布定时任务的信息频道,由于多个外部系统均可向调度系统发送定时任务,因此,调度系统可根据获取到的传入参数,对多个外部系统发送多个定时任务,故在组装待发布定时任务的信息频道的同时,对待发布的定时任务的信息进行记录,即生成定时任务的信息流水号;这样能够根据信息流水号了解到发布的定时任务的数量。当待发布定时任务的信息频道与流水号完成之后,可向多个外部系统发布定时任务,多个外部系统接收到发布的定时任务之后,需要对定时任务进行处理的外部系统会向调度系统发送定时任务登记信息,调度系统接收外部系统反馈的定时任务登记信息,由此完成调度系统向多个外部系统发布定时任务的流程。
在本实施例中,根据所述定时任务登记信息,检测定时任务登记信息的时间类型,并根据所述时间类型向外部系统发布调度信息的步骤S3,包括:
S31:根据外部系统反馈的定时任务登记信息,检测所述定时任务登记信息的时间类型;
S32:根据所述时间类型向redis发送触发定时任务通知的异步消息,其中,所述外部系统通过redis接收所述异步消息;
如上述步骤S31-S32所述,调度系统可根据定时任务登记信息的时间类型进行调度,具体的,根据外部系统反馈的定时任务登记信息,检测定时任务登记信息的时间类型,向外部系统发布调度信息时,可通过向redis发送触发定时任务通知的异步消息实现,具体的,调度信息的类型格式一般为:业务类型.发布系统编号.消息流水号.排除系统列表,例如news.SYS001.20160525000000001.SYS003;调度系统将定时任务以异步消息的方式发送给redis,基于redis的分布式锁的互斥原理:在任意时刻,只有一个客户端能持有锁,因此调度系统将定时任务发送给redis之后,若多个外部系统都订阅了此定时任务,则可向redis申请分布式锁,基于redis的互斥原理,则redis仅向一个外部系统发送分布式锁,具有分布式锁的外部系统则对订阅了的定时任务进行处理;这样调度系统仅需将调度信息发送给redis,而至于哪个外部系统处理该定时任务,与调度系统本身没有关联,即定时任务的多少并不会影响调度系统的性能,且通过避免让调度系统直接向多个外部系统发送大量的不同的调度信息,能够防止降低调度系统的运行速率。
在本实施例中,所述接收外部系统反馈的异步响应信息,并根据所述异步响应信息生成确认系统数的步骤S4之前,包括:
S41、根据所述调度信息接收外部系统反馈的接收确认信息,并生成接收确认总数;
S42、判断所述接收确认总数是否小于所述订阅系统数;
S43、若所述接收确认总数小于所述订阅系统数,则自动向未对调度系统反馈接收确认消息的外部系统重新发布调度信息;
S44、接收所述未对调度系统反馈的外部系统,反馈的接收确认信息,并更新接收确认总数。
如上述步骤S41-S44所述,根据所述接收确认信息生成接收确认总数中,需要对接收确认总数与订阅系统数进行核对,通过判断二者的数目是否相等,可以了解到向调度系统订阅定时任务登记的外部系统是否接收到了该调度信息,若未接收到或者接收过程中发生故障,那么调度系统就无法接收到异步响应信息,从而影响定时任务的处理,且相应的统计的确认系统数也会减少,因此,对于未向调度系统端反馈接收确认信息的外部系统,调度系统可向这些外部系统重新发送调度信息,调度信息可以是基于redis发布,也可以是直接向外部系统发布,具体的步骤为:判断接收确认总数与订阅系统数之间的差值是否达到预设范围,若达到预设范围,则基于redis向外部系统发送调度信息;若未达到预设范围,则直接向外部系统发送调度信息。具体的,预设范围可根据需求提前设置,当接收确认总数与订阅系统数之间的差值达到预设范围时,即表明有大量的外部系统未收到该调度信息,此时,可基于redis向外部系统发送调度信息,如何基于redis向外部系统发送调度信息在前文中已经进行详细说明,在此不做赘述,当接收确认总数与订阅系统数之间的差值未达到预设范围时,则说明仅有少量的外部系统未接收到调度信息,此时调度系统可直接向未接收到调度信息的调度系统直接发送调度信息。这样使得外部系统能够重新接收调度信息,以便及时对定时任务进行处理;当上述外部系统接收到调度信息后,调度系统可根据反馈的接收确认信息,重新统计接收确认总数,即更新接收确认总数,从而保证订阅定时任务的外部系统能够接收到相应的调度信息,以便及时对定时任务进行处理。
在本实施例中,所述接收外部系统反馈的异步响应信息,并根据所述异步响应信息生成确认系统数的步骤S5步骤,包括:
S51、判断完成任务总数是否小于订阅系统数;
S52、若完成任务总数小于订阅系统数,则重新核对接收确认总数与订阅系统数;
S53、若接收确认总数与订阅系统数相等,则确认外部系统在处理定时任务的过程中出现异常。
如上述步骤S51-53所述,首先判断完成任务总数是否小于订阅系统数,即判断外部系统是否对其从调度系统中订阅的定时任务进行了处理,若完成任务总数与订阅系统数相等,则表示每一个订阅的定时任务都被相应的外部系统处理完成了,若完成任务总数小于订阅系统数,则代表部分外部系统在处理定时任务的过程中可能发生了故障,也可能是因为外部系统并未收到调度信息,因此未对定时任务进行处理,为了区分上述两种情况,可重新核对接收确认总数与订阅系统数是否相等,若相等,则可以排除外部系统未收到调度信息的情况,从而能够确认出外部系统是在处理定时任务的过程中发生了故障,这样能够便于用户针对这种情况采取相应措施,提高调度系统的工作效率。
在本实施例中,所述向指定的外部系统再次发布调度信息的步骤S6包括:
S61:获取所述外部系统反馈的定时任务登记信息;
S62:获取所述外部系统反馈的异步响应信息;
S63:将所述定时任务登记信息与所述异步响应信息进行匹配,并对无法匹配到的定时任务登记信息进行汇总,得到排除列表;
S64:获取所述排除列表中定时任务登记信息的时间类型;
S65:根据所述时间类型向指定的外部系统发出调度信息。
如上述步骤S61-65所述,当出现异常时,可发出告警信息,以便引起用户注意。除此之外,还可以通过匹配定时任务登记信息与异步响应信息,将其中无法匹配上异步响应信息的定时任务登记信息单列出来得到排除列表,因此排除列表内包括多个外部系统订阅的定时任务登记信息,且多个外部系统并未对其订阅的定时任务进行处理;通过获取排除列表中定时任务登记信息的时间类型,从而便于用户根据时间类型分析外部系统未正确发送异步响应信息的原因,若需要对某个外部系统重新发送调度信息,则可通过调度系统向指定的外部系统再次发出调度信息,以方便用户分析故障原因,增加调度系统运行效率。
本申请还提供一种定时任务的调度装置,包括:
接收模块1:用于向外部系统发布定时任务,并接收外部系统反馈的定时任务登记信息;
检测模块2:用于检测定时任务登记信息是否合法,若合法,将定时任务登记信息存入数据库中,并计算订阅系统数,其中订阅系统数为定时任务登记信息存入所述数据库的数量;
调度模块3:用于根据所述定时任务登记信息,检测定时任务登记信息的时间时间类型,并根据所述时间类型向外部系统发布调度信息,其中,所述调度信息基于redis发布,所述时间类型包括在预设时间内调度一次的时间类型,以及在预设时间内调度多次的时间类型;
生成模块4:用于接收外部系统反馈的异步响应信息,并根据所述异步响应信息生成完成任务总数;
第一判断模块5:用于根据所述订阅系统数与所述完成任务总数对定时任务的处理结果进行核对,并根据核对结果判断所述外部系统在处理所述定时任务的过程中是否出现异常;
处理模块6:用于若出现异常,发出告警信号和/或向指定的外部系统再次发布调度信息。
在本实施例中,所述接收模块1包括:
第一接收单元:用于接收外部系统发送的请求信号;
第一获取单元:用于根据外部系统发送的请求信号获取外部系统的传入参数,其中,所述传入参数包括业务类型与消息内容;
组装单元:用于根据所述传入参数,组装待发布定时任务的信息频道并生成定时任务的信息流水号;
发布单元:用于根据所述待发布定时任务的信息频道与所述定时任务的信息流水号向外部系统发布定时任务;
第二接收单元:用于接收外部系统反馈的定时任务登记信息。
在本实施例中,调度模块3包括:
检测单元,用于根据外部系统反馈的定时任务登记信息,检测所述定时任务登记信息的时间类型;
发送单元,用于根据所述时间类型向redis发送触发定时任务通知的异步消息,其中,所述外部系统通过redis接收所述异步消息。
在本实施例中,生成模块包括:
第一生成单元,用于根据所述调度信息接收外部系统反馈的接收确认信息,并生成接收确认总数;
第一判断单元,用于判断所述接收确认总数是否小于所述订阅系统数;
重新发布单元,用于若所述接收确认总数小于所述订阅系统数,则自动向未对调度系统反馈接收确认消息的外部系统重新发布调度信息;
更新单元,用于接收所述未对调度系统反馈的外部系统,反馈的接收确认信息,并更新接收确认总数。
在本实例例中,第一判断模块5包括:
第二判断单元,用于判断完成任务总数是否小于订阅系统数;
重新核对单元,用于若完成任务总数小于订阅系统数,则重新核对接收确认总数与订阅系统数;
确认单元,用于若接收确认总数与订阅系统数相等,则确认外部系统在处理定时任务的过程中出现异常。
在本实施例中,处理模块6包括:
第二获取单元,用于获取所述外部系统反馈的定时任务登记信息;
第三获取单元,用于获取所述外部系统反馈的异步响应信息;
匹配单元,用于将所述定时任务登记信息与所述异步响应信息进行匹配,并对无法匹配到所述异步响应信息的所述定时任务登记信息进行汇总,得到排除列表;
第四获取单元,用于获取所述排除列表中定时任务登记信息的时间类型;
第二发送单元,用于根据所述时间类型向指定的外部系统发出调度信息。
上述各模块、各单元均是对应执行上述定时任务的调度装置。
如图3所示,本申请还提供了一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储定时任务调度方法的过程需要的所有数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现定时任务调度方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意一个定时任务调度方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种定时任务调度方法,其特征在于,包括:
向外部系统发布定时任务,并接收所述外部系统反馈的定时任务登记信息;
检测所述定时任务登记信息是否合法,若合法,将所述定时任务登记信息存入数据库中,并计算订阅系统数,其中,所述订阅系统数为所述定时任务登记信息存入所述数据库的数量;
根据所述定时任务登记信息,检测所述定时任务登记信息的时间类型,并根据所述时间类型向所述外部系统发布调度信息,其中,所述调度信息基于redis发布,所述时间类型包括在预设时间内调度一次的时间类型,以及在预设时间内调度多次的时间类型;
接收所述外部系统反馈的异步响应信息,并根据所述异步响应信息生成完成任务总数;
根据所述订阅系统数与所述完成任务总数对所述定时任务的处理结果进行核对,并根据核对结果判断所述外部系统在处理所述定时任务的过程中是否出现异常;
若出现异常,发出告警信号和/或向指定的所述外部系统再次发布所述调度信息。
2.根据权利要求1所述的定时任务调度方法,其特征在于,所述向外部系统发布定时任务,并接收外部系统反馈的定时任务登记信息的步骤,包括:
接收所述外部系统发送的请求信号;
根据所述外部系统发送的请求信号获取所述外部系统的传入参数,其中,所述传入参数包括业务类型与消息内容;
根据所述传入参数,组装待发布定时任务的信息频道并生成所述定时任务的信息流水号;
根据所述待发布定时任务的信息频道与所述定时任务的信息流水号向所述外部系统发布定时任务;
接收所述外部系统反馈的所述定时任务登记信息。
3.根据权利要求1所述的定时任务调度方法,其特征在于,所述根据所述定时任务登记信息,检测定时任务登记信息的时间类型,并根据所述时间类型向外部系统发布调度信息的步骤,包括:
根据所述外部系统反馈的所述定时任务登记信息,检测所述定时任务登记信息的时间类型;
根据所述时间类型向redis发送触发定时任务通知的异步消息,其中,所述外部系统通过redis接收所述异步消息。
4.根据权利要求1所述的定时任务调度方法,其特征在于,所述接收外部系统反馈的异步响应信息,并根据所述异步响应信息生成完成任务总数的步骤之前,包括:
根据所述调度信息接收所述外部系统反馈的接收确认信息,并生成接收确认总数;
判断所述接收确认总数是否小于所述订阅系统数;
若所述接收确认总数小于所述订阅系统数,则自动向未对所述调度系统反馈所述接收确认消息的所述外部系统重新发布所述调度信息;
接收未对所述调度系统反馈的所述外部系统,反馈的所述接收确认信息,并更新所述接收确认总数。
5.根据权利要求4所述的定时任务调度方法,其特征在于,所述根据所述订阅系统数与所述完成任务总数对所述定时任务的处理结果进行核对,并根据核对结果判断所述外部系统在处理所述定时任务的过程中是否出现异常的步骤,包括:
判断所述完成任务总数是否小于所述订阅系统数;
若所述完成任务总数小于所述订阅系统数,则重新核对所述接收确认总数与所述订阅系统数;
若所述接收确认总数与所述订阅系统数相等,则确认所述外部系统在处理所述定时任务的过程中出现异常。
6.根据权利要求1所述的定时任务调度方法,其特征在于,所述向指定的外部系统再次发布调度信息的步骤包括:
获取所述外部系统反馈的定时任务登记信息;
获取所述外部系统反馈的异步响应信息;
将所述定时任务登记信息与所述异步响应信息进行匹配,并对无法匹配到所述异步响应信息的所述定时任务登记信息进行汇总,得到排除列表;
获取所述排除列表中定时任务登记信息的时间类型;
根据所述时间类型向指定的外部系统发出调度信息。
7.一种定时任务的调度装置,其特征在于,包括:
接收模块:用于向外部系统发布定时任务,并接收外部系统反馈的定时任务登记信息;
检测模块:用于检测定时任务登记信息是否合法,若合法,将定时任务登记信息存入数据库中,并计算订阅系统数,其中,所述订阅系统数为所述定时任务登记信息存入所述数据库的数量;
调度模块:用于根据所述定时任务登记信息,检测定时任务登记信息的时间类型,并根据所述时间类型向外部系统发布调度信息,其中,所述调度信息基于redis发布,所述时间类型包括在预设时间内调度一次的时间类型,以及在预设时间内调度多次的时间类型;
生成模块:用于接收外部系统反馈的异步响应信息,并根据所述异步响应信息生成完成任务总数;
第一判断模块:用于根据所述订阅系统数与所述完成任务总数对定时任务的处理结果进行核对,并根据核对结果判断所述外部系统在处理所述定时任务的过程中是否出现异常;
处理模块:用于若出现异常,发出告警信号和/或向指定的外部系统再次发布调度信息。
8.根据权利要求7所述的定时任务的调度装置,其特征在于,所述接收模块包括:
第一接收单元:用于接收所述外部系统发送的请求信号;
第一获取单元:用于根据所述外部系统发送的请求信号获取所述外部系统的传入参数,其中,所述传入参数包括业务类型与消息内容;
组装单元:用于根据所述传入参数,组装待发布定时任务的信息频道并生成定时任务的信息流水号;
发布单元:用于根据所述待发布定时任务的信息频道与所述定时任务的信息流水号向所述外部系统发布定时任务;
第二接收单元:用于接收所述外部系统反馈的定时任务登记信息。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述定时任务调度方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述定时任务调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110729334.2A CN113535353B (zh) | 2021-06-29 | 2021-06-29 | 定时任务调度方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110729334.2A CN113535353B (zh) | 2021-06-29 | 2021-06-29 | 定时任务调度方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113535353A true CN113535353A (zh) | 2021-10-22 |
CN113535353B CN113535353B (zh) | 2022-05-20 |
Family
ID=78097279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110729334.2A Active CN113535353B (zh) | 2021-06-29 | 2021-06-29 | 定时任务调度方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113535353B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023245370A1 (zh) * | 2022-06-20 | 2023-12-28 | 北京小米移动软件有限公司 | 定时任务管理方法、装置、电子设备以及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100259A (zh) * | 2015-08-18 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 一种分布式定时任务执行方法和系统 |
CN109582466A (zh) * | 2017-09-29 | 2019-04-05 | 北京金山软件有限公司 | 一种定时任务执行方法、分布式服务器集群及电子设备 |
US20190243822A1 (en) * | 2017-05-17 | 2019-08-08 | International Business Machines Corporation | Database server system monitoring |
CN110333915A (zh) * | 2019-05-31 | 2019-10-15 | 深圳壹账通智能科技有限公司 | 定时执行任务的方法、装置、计算机设备及存储介质 |
CN111400332A (zh) * | 2020-03-18 | 2020-07-10 | 网易(杭州)网络有限公司 | 项目进度的监控方法及装置 |
CN112506624A (zh) * | 2020-10-29 | 2021-03-16 | 望海康信(北京)科技股份公司 | 定时任务调度系统、方法及相应计算机设备和存储介质 |
CN112817710A (zh) * | 2021-01-22 | 2021-05-18 | 平安养老保险股份有限公司 | 定时任务处理方法、系统、计算机设备及计算机存储介质 |
-
2021
- 2021-06-29 CN CN202110729334.2A patent/CN113535353B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100259A (zh) * | 2015-08-18 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 一种分布式定时任务执行方法和系统 |
US20190243822A1 (en) * | 2017-05-17 | 2019-08-08 | International Business Machines Corporation | Database server system monitoring |
CN109582466A (zh) * | 2017-09-29 | 2019-04-05 | 北京金山软件有限公司 | 一种定时任务执行方法、分布式服务器集群及电子设备 |
CN110333915A (zh) * | 2019-05-31 | 2019-10-15 | 深圳壹账通智能科技有限公司 | 定时执行任务的方法、装置、计算机设备及存储介质 |
CN111400332A (zh) * | 2020-03-18 | 2020-07-10 | 网易(杭州)网络有限公司 | 项目进度的监控方法及装置 |
CN112506624A (zh) * | 2020-10-29 | 2021-03-16 | 望海康信(北京)科技股份公司 | 定时任务调度系统、方法及相应计算机设备和存储介质 |
CN112817710A (zh) * | 2021-01-22 | 2021-05-18 | 平安养老保险股份有限公司 | 定时任务处理方法、系统、计算机设备及计算机存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023245370A1 (zh) * | 2022-06-20 | 2023-12-28 | 北京小米移动软件有限公司 | 定时任务管理方法、装置、电子设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113535353B (zh) | 2022-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3386150B1 (en) | Terminal failure processing method, device and system | |
US6654915B1 (en) | Automatic fault management system utilizing electronic service requests | |
CN109274526B (zh) | 测试缺陷自动预警方法、装置、计算机设备及存储介质 | |
CN110445636B (zh) | 基于管理平台的微服务预警方法、装置和计算机设备 | |
CN110224855B (zh) | 微服务实例的注册方法、装置、计算机设备及存储介质 | |
CN113535353B (zh) | 定时任务调度方法、装置和计算机设备 | |
CN110995468A (zh) | 待分析系统的系统故障处理方法、装置、设备和存储介质 | |
CN110138741B (zh) | 基于统一管理平台的微服务管理方法、装置和计算机设备 | |
CN106713471B (zh) | 一种配置文件获取方法及装置 | |
CN113391990A (zh) | 系统日志的监控方法、装置、设备及存储介质 | |
CN109802854A (zh) | 跟踪网络请求的方法、装置、计算机设备和存储介质 | |
CN110969417A (zh) | 政务事项同步方法、装置、系统、计算机设备和存储介质 | |
CN110880074B (zh) | 质量监控系统和方法及存储介质、服务器 | |
US11928033B2 (en) | Incident-responsive, computing system snapshot generation | |
CN111224939B (zh) | 任务请求的拦截方法、装置、计算机设备和存储介质 | |
CN107404456B (zh) | 错误定位方法及装置 | |
CN110149421B (zh) | 域名系统的异常监测方法、系统、装置和计算机设备 | |
CN110333957B (zh) | 远程过程调用rpc服务调用方法、装置和计算机设备 | |
CN106571975B (zh) | 一种通信数据的容错方法及装置 | |
CN114996079A (zh) | 运维监控方法、装置、计算机设备及计算机可读存储介质 | |
CN113010306A (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN112564980A (zh) | 一种基于微服务架构的服务监控方法及系统 | |
CN112667424A (zh) | 异常数据的处理方法、装置、计算机设备及存储介质 | |
CN110995522B (zh) | 一种信息处理方法及装置 | |
CN110505177B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |