CN113641474B - 一种任务调度方法、装置及计算机可读存储介质 - Google Patents

一种任务调度方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN113641474B
CN113641474B CN202110932514.0A CN202110932514A CN113641474B CN 113641474 B CN113641474 B CN 113641474B CN 202110932514 A CN202110932514 A CN 202110932514A CN 113641474 B CN113641474 B CN 113641474B
Authority
CN
China
Prior art keywords
task
message
task message
scheduling
execution
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.)
Active
Application number
CN202110932514.0A
Other languages
English (en)
Other versions
CN113641474A (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.)
Guangzhou Huya Technology Co Ltd
Original Assignee
Guangzhou Huya 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 Guangzhou Huya Technology Co Ltd filed Critical Guangzhou Huya Technology Co Ltd
Priority to CN202110932514.0A priority Critical patent/CN113641474B/zh
Publication of CN113641474A publication Critical patent/CN113641474A/zh
Application granted granted Critical
Publication of CN113641474B publication Critical patent/CN113641474B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明的实施例提供了一种任务调度方法、装置及计算机可读存储介质,所述方法包括:调度代理中心将任务消息封装后存储,并推送至业务方;接收业务方发送的任务消息的执行反馈信息;基于任务消息和执行反馈信息,对任务消息进行监管。从而解耦调度组件与业务服务,让业务服务不再依赖任何调度组件,业务方无需关心任务调度如何实现,业务服务中也无需接入大量复杂关于调度的组件代码,只需接收到任务消息后,处理自己的业务,并且实现对任务消息的监管。

Description

一种任务调度方法、装置及计算机可读存储介质
技术领域
本发明涉及任务调度领域,具体而言,涉及一种任务调度方法、装置及计算机可读存储介质。
背景技术
目前的业界任务调度系统,无法对调度信息监控、告警、重试、明细报表等核心功能,并且业务方在接入任务调度系统的情况下,业务方需要清楚任务调度系统的运行机制,同时需要编写大量关于任务调度系统工作的配套代码。
因此,目前业务方对任务调度系统的依赖性较大,并且调度信息管理不便的问题。
发明内容
本发明的目的包括,例如,提供了一种任务调度方法、装置及计算机可读存储介质,其能够使得业务方与任务调度系统解耦,且实现调度信息的监控。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种任务调度方法,应用于任务调度系统,所述任务调度系统包括调度代理中心,所述方法包括:
所述调度代理中心将所述任务消息封装后存储,并推送至业务方;
接收所述业务方发送的所述任务消息的执行反馈信息;
基于所述任务消息和所述执行反馈信息,对所述任务消息进行监管。
在可选的实施方式中,所述任务调度系统还包括:调度器、可视化控制中心和至少一个执行器,所述方法还包括:
可视化控制中心根据业务方配置的任务配置规则生成调度指令;
所述调度器将所述调度指令分配至至少一个执行器;
所述执行器确定所述调度指令的任务消息,并将所述任务消息发送至调度代理中心。
在可选的实施方式中,所述任务调度系统还包括调度SDK包,所述调度代理中心将所述任务消息封装后存储,并推送至业务方的步骤,包括:
所述调度代理中心将所述任务消息封装后存储;
在业务方接入所述调度SDK包的情况下,所述调度SDK包扫描所述业务方的任务标识;
所述调度SDK包将与所述业务方的任务标识对应的任务消息进行解析得到目标任务消息,并将所述目标任务消息传输至业务方。
在可选的实施方式中,所述基于所述任务消息和所述执行反馈信息,对所述任务消息进行监管的步骤,包括:
所述调度代理中心将相同任务名的多个所述任务消息放入队列中;
针对队列中的每个所述任务消息,确定所述任务消息的执行时长;
判断所述执行时长是否超出预设时长;
若否,则将所述任务消息从队列中删除。
在可选的实施方式中,所述针对队列中的每个所述任务消息,确定所述任务消息的执行时长的步骤,包括:
确定所述任务消息的发送时间和所述任务消息的反馈信息中的接收反馈时间;
基于所述发送时间和所述接收反馈时间,确定所述任务消息的执行时长。
在可选的实施方式中,所述方法还包括:
在所述执行时长超出预设时长的情况下,将所述任务消息重新发送,并更新所述任务消息的发送时间;
基于更新后的所述发送时间和重新发送的所述任务消息的接收反馈时间,所述调度代理中心计算重新发送的任务消息的执行时长;
若重新发送的任务消息的执行时长未超过预设时长,则表征所述任务消息重新发送成功,在队列中删除该条任务消息。
在可选的实施方式中,所述方法还包括:
在重新发送的任务消息的执行时长超过预设时长的情况下,确定重新发送该任务消息的重试次数;
若重试次数大于预设次数,停止重试,并在队列中删除该任务消息;
若重试次数小于预设次数,则将重新发送的任务消息再次进行重新发送。
在可选的实施方式中,所述方法还包括:
基于所述任务消息和所述执行反馈信息生成所述任务消息的日志记录;
所述调度代理中心基于所述任务消息的日志记录生成所述任务消息的监控图和代理明细表,其中,所述监控图中指示所述任务消息的成功率和所述任务消息的所有业务节点处理的成功率,所述代理明细表中包含任务消息的任务名、分片、执行时间、结果、重试次数、任务消息执行的IP信息。
第二方面,本申请实施例提供了一种
任务调度装置,所述装置包括:
调度器、可视化控制中心、至少一个执行器以及调度代理中心;
所述可视化控制中心,用于根据业务方配置的任务配置规则生成调度指令;
所述调度器,用于将所述调度指令分配至至少一个执行器;
所述执行器,用于确定所述调度指令的任务消息,并将所述任务消息发送至调度代理中心;
所述调度代理中心,用于将所述任务消息封装后存储,并推送至业务方;
接收所述业务方发送的所述任务消息的执行反馈信息;
基于所述任务消息和所述执行反馈信息,对所述任务消息进行监管。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述任务调度方法的步骤。
本申请具有以下有益效果:
本申请通过调度代理中心将任务消息封装后存储,并推送至业务方;接收业务方发送的任务消息的执行反馈信息;基于任务消息和执行反馈信息,对任务消息进行监管。从而解耦调度组件与业务服务,让业务服务不再依赖任何调度组件,业务方无需关心任务调度如何实现,业务服务中也无需接入大量复杂关于调度的组件代码,只需接收到任务消息后,处理自己的业务,并且实现对任务消息的监管。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的任务调度系统的方框示意图;
图2为本发明实施例提供的一种任务调度方法的流程示意图之一;
图3为本发明实施例提供的一种任务调度方法的流程示意图之二;
图4为本发明实施例提供的任务调度系统的总体架构示意图;
图5为本发明实施例提供的一种任务调度方法的流程示意图之三;
图6为本发明实施例提供的一种任务调度方法的流程示意图之四;
图7为本发明实施例提供的一种任务调度装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
现有技术中的任务调度系统无法对调度信息监控、告警、重试、明细报表等核心功能,并且业务方在接入任务调度系统的情况下,业务方需要清楚任务调度系统的运行机制,同时需要编写大量关于任务调度系统工作的配套代码。
但是经过发明人大量研究发现,采用上述方式,存在业务方对任务调度系统的依赖性较大,从而导致业务方和任务调度系统的开发成本较高,并且调度信息管理不便的问题。
有鉴于对上述问题的发现,本实施例提供了一种任务调度方法、装置及计算机可读存储介质,能够实现无需业务方编写配套的编码,即可完成任务的调度,且实现调度信息的监控,下面对本实施例提供的方案进行详细阐述。
本实施例提供一种可以对任务进行调度的任务调度系统。在一种可能的实现方式中,所述任务调度系统可以为用户终端,例如,电子设备可以是,但不限于,服务器、智能手机、个人电脑(PersonalComputer,PC)、平板电脑、个人数字助理(Personal DigitalAssistant,PDA)、移动上网设备(Mobile Internet Device,MID)以及图像采集装置等。
该任务调度系统可以具有能够对任务进行调度和监管的部件,例如,中央处理器(CentralProcessing Unit,CPU)、图形处理器(Graphic Processing Unit,GPU)等,从而执行本实施例提供的任务调度方法。
在另一种可能的实现方式中,所述任务调度系统也可以为能够与用户终端通信的服务器。该服务器可以将任务消息封装后存储,并推送至业务方;接收所述业务方发送的所述任务消息的执行反馈信息;基于所述任务消息和所述执行反馈信息,对所述任务消息进行监管。
请参照图1所示的该任务调度系统100的结构示意图。该任务调度系统100包括任务调度装置110、存储器120、处理器130以及通信单元140。
该存储器120、处理器130以及通信单元140各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。该任务调度装置110包括至少一个可以软件或固件(Firmware)的形式存储于存储器120中或固化在服电子设备100的操作系统(Operating System,OS)中的软件功能模块。处理器130用于执行存储器120中存储的可执行模块,例如任务调度装置110所包括的软件功能模块及计算机程序等。该任务调度装置110中的计算机可执行指令被处理器执行时,实现该任务调度方法。
其中,该存储器120可以是,但不限于,随机存取存储器(RandomAccess Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器120用于存储程序,该处理器130在接收到执行指令后,执行该程序。该通信单元140用于通过网络收发数据。
该处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
请参照图2,图2为应用于图1所示的任务调度系统100的一种任务调度方法的流程图,以下将对所述方法包括各个步骤进行详细阐述。
步骤201:调度代理中心将任务消息封装后存储,并推送至业务方。
步骤202:接收业务方发送的任务消息的执行反馈信息。
步骤203:基于任务消息和执行反馈信息,对任务消息进行监管。
任务调度系统分为平台层和业务层,平台层包括封装基础调度组件,调度代理中心、消息存储中心。对于平台层,不熟整套调度组件,并实现MYSQL主从,执行器多机房部署,ZooKeeper双机房部署,从而实现基础组件的高可用。
MYSQL是一个关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,增加了速度并提高了灵活性。
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
调度代理中心将调度指令对应的任务消息进行封装,调度代理中心对任务消息进行封装,封装为消息通道的软件开发包发送至存储中心,所有任务消息都是在同一个消息通道,唯一不同的是各任务消息对应不同的任务名。将封装后的任务消息的软件开发包至业务方,业务方执行任务消息的软件包,生成执行反馈信息,执行反馈信息包括回复时间和执行状态等信息。
基于任务消息的发出时间、回复时间、执行状态等信息,基于任务消息和执行反馈信息对任务消息进行监管,例如对任务消息状态进行监管,告警,重新发送等。
本申请通过调度代理中心将任务消息封装后存储,并推送至业务方;接收业务方发送的任务消息的执行反馈信息;基于任务消息和执行反馈信息,对任务消息进行监管。从而解耦调度组件与业务服务,让业务服务不再依赖任何调度组件,业务方无需关心任务调度如何实现,业务服务中也无需接入大量复杂关于调度的组件代码,只需接收到任务消息后,处理自己的业务,并且实现对任务消息的监管。
为了确定任务消息,在本申请的另一实施例中,如图3所示的一种任务调度方法的步骤流程图,具体包括如下步骤:
步骤301:可视化控制中心根据业务方配置的任务配置规则生成调度指令。
步骤302:调度器将调度指令分配至至少一个执行器。
步骤303:执行器确定调度指令的任务消息,并将任务消息发送至调度代理中心。
其中,调度指令包括任务消息。
如图4所示,为任务调度系统的总体架构示意图,可视化控制中心为业务方在可视化控制中心输入任务配置规则,任务配置规则保存至MYSQL数据库中,可视化控制中心依据任务配置规则生成调度指令,例如:调度指令为每3s执行一次目标任务和每3s执行一次的目标任务分片,或者每10s执行一次目标任务和每10s执行一次的目标任务的分片。图中调度器基于生成的调度指令,按照算法对调度指令进行调度。执行器有多台,当某一台执行器挂掉,则会调用其他执行器执行该任务。注册中心,注册有多台执行器,当某一台执行器负载过高,可视化控制中心将负载过高的执行器下线,即负载过高的执行器不在执行指令。调度器基于算法控制哪一台执行器接收调度指令,调度器基于算法计算多台执行器中哪些性能较高,则将调度指令下发至对应的执行器,从而避免某一台执行器负载过高或者故障,执行器将任务消息发送至调度代理中心进行处理。
通过业务方配置的任务配置规则生成调度指令,调度器基于预设算法确定将调度指令分配给性能较佳的执行器,并由执行器将任务消息发送至调度代理中心。
执行器是一个接口,它的作用主要是为我们提供任务与执行机制(包括线程使用和调度细节)之间的解耦。
本申请过调度代理中心将任务消息封装后存储,并推送至业务方;接收业务方发送的任务消息的执行反馈信息;基于任务消息和执行反馈信息,对任务消息进行监管。从而解耦调度组件与业务服务,让业务服务不再依赖任何调度组件,业务方无需关心任务调度如何实现,业务服务中也无需接入大量复杂关于调度的组件代码,只需接收到任务消息后,处理自己的业务,并且实现对任务消息的监管。
为了实现任务消息的隔离,针对上述步骤201,在本申请的另一实施例中,如图5所示,提供了一种任务调度方法,具体包括如下步骤:
任务调度系统还包括调度SDK包。
步骤201-1:调度代理中心将任务消息封装后存储。
步骤201-2:在业务方接入调度SDK包的情况下,调度SDK包扫描业务方的任务标识。
步骤201-3:调度SDK包将与业务方的任务标识对应的任务消息进行解析得到目标任务消息,并将目标任务消息传输至业务方。
由于所有消息都是在同一个消息通道,为了保证各业务方只接受自己的业务消息,则基于业务方的任务标识,将调度SDK包中与业务方的任务标识一致的目标消息发送至业务方,实现任务消息的隔离。
为了实现基于任务消息的监管,针对上述步骤203,在本申请的另一实施例中,如图6所示,提供了一种任务调度方法,具体包括如下步骤:
步骤203-1:调度代理中心将相同任务名的多个任务消息放入队列中。
步骤203-2:针对队列中的每个任务消息,确定任务消息的执行时长。
步骤203-3:判断执行时长是否超出预设时长。
步骤203-4:若否,则将任务消息从队列中删除。
任务消息的执行时长具体为:确定任务消息的发送时间和任务消息的反馈信息中的接收反馈时间;基于发送时间和接收反馈时间,确定任务消息的执行时长。
在执行时长超出预设时长的情况下,将任务消息重新发送,并更新任务消息的发送时间;基于更新后的发送时间和重新发送的任务消息的接收反馈时间,计算重新发送的任务消息的执行时长;若重新发送的任务消息的执行时长未超过预设时长,则表征任务消息重新发送成功,在队列中删除该条任务消息。
在调度代理中心内,将调度的任务消息放入队列中,不同的任务放入不同的队列中,队列是以任务名来区分的。当调度代理中心收到该条任务消息的回复消息时,会更新该消息的接收时间,即可知道该条调度的任务消息的执行时间,如果执行时间小于预设时长,则说明该条调度的任务消息执行正常,从队列里面移除掉该条任务消息。
在重新发送的任务消息的执行时长超过预设时长的情况下,确定重新发送该任务消息的重试次数;若重试次数大于预设次数,停止重试,并在队列中删除该任务消息;若重试次数小于预设次数,则将重新发送的任务消息再次进行重新发送。
其中,需要说明的是,重试次数是业务方进行设定的。
对于队列中的任务消息,有一个定时任务去扫描队列,由于调度代理中心有多个节点,当任务消息为定时任务时,增加分布式锁去竞争,抢到某个任务消息后,便开始循环遍历查看任务消息在推送至业务方后,业务方对任务消息的执行是否超时,若超时,则重新发送该条任务消息。或者业务方对任务消息的执行超时,并且上一次重试的执行时间大于预设时长,则会超时消息的告警信息。
接收到重新发送的任务消息的执行后会先删掉重试消息在队列中的缓存,同时计算该次重试任务消息所使用的时间,如果不超过预设时长,则该次重试成功,删掉队列中的该条任务消息,该条任务消息将会停止重试。如果重试的次数超过了设定的最大重试次数,即预设次数,则也会停止重试。
基于任务消息和执行反馈信息生成任务消息的日志记录,调度代理中心基于任务消息的日志记录生成任务消息的监控图和代理明细表,其中,监控图中指示任务消息的成功率和任务消息的所有业务节点处理的成功率,代理明细表中包含任务消息的任务名、分片、执行时间、结果、重试次数、任务消息执行的IP信息。
基于任务消息的发出时间、回复时间、执行状态灯,生成任务消息的日志记录,对于任务消息的执行均会在任务消息的日志记录中记载。
本申请过调度代理中心将任务消息封装后存储,并推送至业务方;接收业务方发送的任务消息的执行反馈信息;基于任务消息和执行反馈信息,生成任务消息的日志记录;基于任务消息的日志记录对任务消息进行监管。从而解耦调度组件与业务服务,让业务服务不再依赖任何调度组件,业务方无需关心任务调度如何实现,业务服务中也无需接入大量复杂关于调度的组件代码,只需接收到任务消息后,处理自己的业务,并且实现对任务消息的监管。
请参照图7,本实施例还提供一种应用于图1所述任务调度系统100的任务调度装置110,所述任务调度装置110包括:
可视化控制中心111、调度器112、至少一个执行器113以及调度代理中心114;
所述可视化控制中心111,用于根据业务方配置的任务配置规则生成调度指令;
所述调度器112,用于将所述调度指令分配至至少一个执行器;
所述执行器113,用于确定所述调度指令的任务消息,并将所述任务消息发送至调度代理中心;
所述调度代理中心114,用于将所述任务消息封装后存储,并推送至业务方;
接收所述业务方发送的所述任务消息的执行反馈信息;
基于所述任务消息和所述执行反馈信息,对所述任务消息进行监管。
可选地,在一些可能的实现方式中,所述调度代理中心114具体用于:
所述调度代理中心将所述任务消息封装后存储;
在业务方接入所述调度SDK包的情况下,所述调度SDK包扫描所述业务方的任务标识;
所述调度SDK包将与所述业务方的任务标识对应的任务消息进行解析得到目标任务消息,并将所述目标任务消息传输至业务方。
可选地,在一些可能的实现方式中,所述调度代理中心114具体用于:
所述调度代理中心将相同任务名的多个所述任务消息放入队列中;
针对队列中的每个所述任务消息,确定所述任务消息的执行时长;
判断所述执行时长是否超出预设时长;
若否,则将所述任务消息从队列中删除。
可选地,在一些可能的实现方式中,所述调度代理中心114具体用于:
确定所述任务消息的发送时间和所述任务消息的反馈信息中的接收反馈时间;
基于所述发送时间和所述接收反馈时间,确定所述任务消息的执行时长。
可选地,在一些可能的实现方式中,所述调度代理中心114具体用于:
在所述执行时长超出预设时长的情况下,将所述任务消息重新发送,并更新所述任务消息的发送时间;
基于更新后的所述发送时间和重新发送的所述任务消息的接收反馈时间,计算重新发送的任务消息的执行时长;
若重新发送的任务消息的执行时长未超过预设时长,则表征所述任务消息重新发送成功,在队列中删除该条任务消息。
可选地,在一些可能的实现方式中,所述调度代理中心114具体用于:
在重新发送的任务消息的执行时长超过预设时长的情况下,确定重新发送该任务消息的重试次数;
若重试次数大于预设次数,停止重试,并在队列中删除该任务消息;
若重试次数小于预设次数,则将重新发送的任务消息再次进行重新发送。
可选地,在一些可能的实现方式中,所述调度代理中心114具体用于:
基于所述任务消息和所述执行反馈信息生成所述任务消息的日志记录;所述调度代理中心基于所述任务消息的日志记录生成所述任务消息的监控图和代理明细表,其中,所述监控图中指示所述任务消息的成功率和所述任务消息的所有业务节点处理的成功率,所述代理明细表中包含任务消息的任务名、分片、执行时间、结果、重试次数、任务消息执行的IP信息。
综上所述,本申请过调度代理中心将任务消息封装后存储,并推送至业务方;接收业务方发送的任务消息的执行反馈信息;基于任务消息和执行反馈信息,对任务消息进行监管。从而解耦调度组件与业务服务,让业务服务不再依赖任何调度组件,业务方无需关心任务调度如何实现,业务服务中也无需接入大量复杂关于调度的组件代码,只需接收到任务消息后,处理自己的业务,并且实现对任务消息的监管。
本申请实施例还提供一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序被处理器130执行时,实现该任务调度方法。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的各种实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (9)

1.一种任务调度方法,其特征在于,应用于任务调度系统,所述任务调度系统包括调度代理中心,所述方法包括:
所述调度代理中心将任务消息封装后存储,并推送至业务方;
接收所述业务方发送的所述任务消息的执行反馈信息;
基于所述任务消息和所述执行反馈信息,对所述任务消息进行监管;所述任务调度系统还包括:调度器、可视化控制中心和至少一个执行器,所述方法还包括:
可视化控制中心根据业务方配置的任务配置规则生成调度指令;
所述调度器将所述调度指令分配至至少一个执行器;
所述执行器确定所述调度指令的任务消息,并将所述任务消息发送至调度代理中心;
其中,调度器基于预设算法确定目标执行器,目标执行器为性能高于预设性能的执行器;
所述调度代理中心将调度指令对应的任务消息进行封装,封装为消息通道的软件开发包发送至存储中心,所有任务消息均处于同一个消息通道,各任务消息对应不同的任务名,业务方执行任务消息的软件包,生成执行反馈信息,执行反馈信息包括回复时间和执行状态信息。
2.根据权利要求1所述的方法,其特征在于,所述任务调度系统还包括调度SDK包,所述调度代理中心将所述任务消息封装后存储,并推送至业务方的步骤,包括:
所述调度代理中心将所述任务消息封装后存储;
在业务方接入所述调度SDK包的情况下,所述调度SDK包扫描所述业务方的任务标识;
所述调度SDK包将与所述业务方的任务标识对应的任务消息进行解析得到目标任务消息,并将所述目标任务消息传输至业务方。
3.根据权利要求1所述的方法,其特征在于,所述基于所述任务消息和所述执行反馈信息,对所述任务消息进行监管的步骤,包括:所述调度代理中心将相同任务名的多个所述任务消息放入队列中;
针对队列中的每个所述任务消息,确定所述任务消息的执行时长;
判断所述执行时长是否超出预设时长;
若否,则将所述任务消息从队列中删除。
4.根据权利要求3所述的方法,其特征在于,所述针对队列中的每个所述任务消息,确定所述任务消息的执行时长的步骤,包括:
确定所述任务消息的发送时间和所述任务消息的反馈信息中的接收反馈时间;
基于所述发送时间和所述接收反馈时间,确定所述任务消息的执行时长。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述执行时长超出预设时长的情况下,将所述任务消息重新发送,并更新所述任务消息的发送时间;
基于更新后的所述发送时间和重新发送的所述任务消息的接收反馈时间,计算重新发送的任务消息的执行时长;
若重新发送的任务消息的执行时长未超过预设时长,则表征所述任务消息重新发送成功,在队列中删除该任务消息。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在重新发送的任务消息的执行时长超过预设时长的情况下,确定重新发送该任务消息的重试次数;
若重试次数大于预设次数,停止重试,并在队列中删除该任务消息;
若重试次数小于预设次数,则将重新发送的任务消息再次进行重新发送。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述任务消息和所述执行反馈信息生成所述任务消息的日志记录;
所述调度代理中心基于所述任务消息的日志记录生成所述任务消息的监控图和代理明细表,其中,所述监控图中指示所述任务消息的成功率和所述任务消息的所有业务节点处理的成功率,所述代理明细表中包含任务消息的任务名、分片、执行时间、结果、重试次数、任务消息执行的IP信息。
8.一种任务调度装置,其特征在于,所述装置包括:
调度器、可视化控制中心、至少一个执行器以及调度代理中心;
所述可视化控制中心,用于根据业务方配置的任务配置规则生成调度指令;
所述调度器,用于将所述调度指令分配至至少一个执行器;
所述执行器,用于确定所述调度指令的任务消息,并将所述任务消息发送至调度代理中心;
所述调度代理中心,用于将所述任务消息封装后存储,并推送至业务方;
接收所述业务方发送的所述任务消息的执行反馈信息;
基于所述任务消息和所述执行反馈信息对所述任务消息进行监管;
所述可视化控制中心根据业务方配置的任务配置规则生成调度指令;
所述调度器将所述调度指令分配至至少一个执行器;
所述执行器确定所述调度指令的任务消息,并将所述任务消息发送至调度代理中心;
其中,所述调度器基于预设算法确定目标执行器,目标执行器为性能高于预设性能的执行器;
所述调度代理中心将调度指令对应的任务消息进行封装,封装为消息通道的软件开发包发送至存储中心,所有任务消息均处于同一个消息通道,各任务消息对应不同的任务名,业务方执行任务消息的软件包,生成执行反馈信息,执行反馈信息包括回复时间和执行状态信息。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
CN202110932514.0A 2021-08-13 2021-08-13 一种任务调度方法、装置及计算机可读存储介质 Active CN113641474B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110932514.0A CN113641474B (zh) 2021-08-13 2021-08-13 一种任务调度方法、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110932514.0A CN113641474B (zh) 2021-08-13 2021-08-13 一种任务调度方法、装置及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN113641474A CN113641474A (zh) 2021-11-12
CN113641474B true CN113641474B (zh) 2024-03-15

Family

ID=78421680

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110932514.0A Active CN113641474B (zh) 2021-08-13 2021-08-13 一种任务调度方法、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113641474B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114979256A (zh) * 2022-05-19 2022-08-30 北京京东乾石科技有限公司 一种消息推送方法、装置、电子设备及计算机可读介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106648845A (zh) * 2016-09-23 2017-05-10 努比亚技术有限公司 一种分布式任务调度系统及方法
CN107688489A (zh) * 2016-08-03 2018-02-13 北京京东尚科信息技术有限公司 一种调度任务的方法和系统
CN110377410A (zh) * 2019-07-16 2019-10-25 中信百信银行股份有限公司 任务调度方法、系统、电子设备及计算机可读存储介质
WO2020140683A1 (zh) * 2019-01-04 2020-07-09 深圳壹账通智能科技有限公司 任务调度方法、装置、计算机设备和存储介质
CN112181627A (zh) * 2020-10-26 2021-01-05 深圳前海微众银行股份有限公司 定时任务调度方法、装置及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107688489A (zh) * 2016-08-03 2018-02-13 北京京东尚科信息技术有限公司 一种调度任务的方法和系统
CN106648845A (zh) * 2016-09-23 2017-05-10 努比亚技术有限公司 一种分布式任务调度系统及方法
WO2020140683A1 (zh) * 2019-01-04 2020-07-09 深圳壹账通智能科技有限公司 任务调度方法、装置、计算机设备和存储介质
CN110377410A (zh) * 2019-07-16 2019-10-25 中信百信银行股份有限公司 任务调度方法、系统、电子设备及计算机可读存储介质
CN112181627A (zh) * 2020-10-26 2021-01-05 深圳前海微众银行股份有限公司 定时任务调度方法、装置及系统

Also Published As

Publication number Publication date
CN113641474A (zh) 2021-11-12

Similar Documents

Publication Publication Date Title
CN105378696A (zh) 跨各设备提供未看见消息计数
CN109710394A (zh) 定时任务处理系统及方法
CN113641474B (zh) 一种任务调度方法、装置及计算机可读存储介质
CN109684036A (zh) 一种容器集群管理方法、存储介质、电子设备及系统
US9407586B2 (en) Method and system for cross device notification
US20080153464A1 (en) Methods and systems for indicating the occurrence of an event
CN109783573B (zh) 多路推送的数据同步方法及终端
CN108631955A (zh) 一种确保消息发送可达的方法、系统和装置
CN105260842B (zh) 异构erp系统之间的通信方法和系统
CN112346926A (zh) 资源状态监控方法、装置及电子设备
JP2019215865A (ja) チャットルームリストの表示方法及び媒体
CN107577527B (zh) 任务生成、调度方法及装置
US20220207637A1 (en) Business system automatic alarm device and method, and computer apparatus
CN111124801A (zh) 智能化系统资源监控方法、装置及计算机可读存储介质
CN111181837A (zh) 一种发送告警信息的方法及装置
CN114663057A (zh) 工作流管理系统、方法,以及,电子设备
CN112860504A (zh) 监控方法及装置、计算机存储介质、电子设备
CN107547289A (zh) 消息传输系统、消息发送方法和装置、接收方法和装置
CN111652681A (zh) 一种单据处理方法、服务器及计算机可读存储介质
CN107682573B (zh) 高并发外呼方法、系统、设备及存储介质
CN108121580B (zh) 应用程序通知服务的实现方法及装置
JPH0341522A (ja) メッセージ紛失検出処理方式
CN112445597A (zh) 定时任务调度方法和装置
CN112037926A (zh) 居家隔离报警的实现方法、系统、介质及服务器
US11012254B2 (en) Method and apparatus for handling controller area network (CAN) messages in a fuel cell system

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