logo好方法网

微服务任务协调调度方法及系统


技术摘要:
本发明公开了一种微服务任务协调调度方法、介质、设备及系统,其中方法包括:获取微服务调用请求,并根据所述微服务调用请求计算相应的任务执行信息,以及根据所述任务执行信息生成任务队列;将所述任务执行信息持久化存储;依序判断所述任务队列中的任务是否正在被执  全部
背景技术:
在基于微服务而开发的系统中,经常会遇到定时任务或者任务协调调度相关的业 务。例如:按秒、分、时、天、周、月、年多重时间组合方式来自动触发其他业务微服务进行相 关业务执行。 相关技术中,在对微服务任务进行协调调度的过程中,多通过研发人员根据具体 的调度任务进行微服务的调用,需要耗费大量的人力物力,同时,数据未进行持久化处理导 致系统容灾能力较低。
技术实现要素:
本发明旨在至少在一定程度上解决上述技术中的技术问题之一。为此,本发明的 一个目的在于提出一种微服务任务协调调度方法,能够对微服务进行有效调度,提高调度 效率,避免调度出错导致同一任务多次执行等错误的发生;同时,提高系统的容灾能力。 本发明的第二个目的在于提出一种计算机可读存储介质。 本发明的第三个目的在于提出一种计算机设备。 本发明的第四个目的在于提出一种微服务任务协调调度系统。 为达到上述目的,本发明第一方面实施例提出了一种微服务任务协调调度方法, 包括以下步骤:获取微服务调用请求,并根据所述微服务调用请求计算相应的任务执行信 息,以及根据所述任务执行信息生成任务队列;将所述任务执行信息持久化存储;依序判断 所述任务队列中的任务是否正在被执行,并在该任务未被执行时获取存活服务节点列表, 以及根据所述存活服务节点列表为该任务随机分配执行服务节点,以便所述执行服务节点 根据所述任务执行信息执行任务。 根据本发明实施例的微服务任务协调调度方法,首先,获取微服务调用请求,并根 据微服务调用请求计算相应的任务执行信息,以及根据任务执行信息生成任务队列;接着, 将任务执行信息持久化存储;然后,依序判断任务队列中的任务是否正在被执行,并在该任 务未被执行时获取存活服务节点列表,以及根据存活服务节点列表为该任务随机分配执行 服务节点,以便执行服务节点根据任务执行信息执行任务;从而实现对微服务进行有效调 度,提高调度效率,避免调度出错导致同一任务多次执行等错误的发生;同时,提高系统的 容灾能力。 另外,根据本发明上述实施例提出的微服务任务协调调度方法还可以具有如下附 加的技术特征: 可选地,在根据所述存活服务节点列表为该任务随机分配执行服务节点之前,还 包括:获取每个存活服务节点列表对应的心跳信息,并根据所述心跳信息计算每个存活服 4 CN 111580945 A 说 明 书 2/8 页 务节点对应的存活时间,以及将存活时间最久的存活服务节点选举为主节点,以便所述主 节点根据所述存活服务节点列表为任务随机分配执行服务节点。 可选地,所述任务执行信息包括:任务执行时间、任务调用方法和任务对应的api 接口。 可选地,在根据所述存活服务节点列表为该任务随机分配执行服务节点之后,还 包括:根据所述任务执行时间判断该任务当前是否需要被执行,并在该任务需要被执行时, 通过该任务对应的执行服务节点对该任务进行执行。 可选地,还包括:判断所述任务是否已被执行成功;如果否,则将该任务列入异常 列表;如果是,则判断该任务是否需要再次被执行,并在判断结果为是时对该任务的下一次 执行时间进行监控。 为达到上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上 存储有微服务任务协调调度程序,该微服务任务协调调度程序被处理器执行时实现如上述 的微服务任务协调调度方法。 根据本发明实施例的计算机可读存储介质,通过存储微服务任务协调调度程序, 以使得处理器在执行该微服务任务协调调度程序时,实现如上述的微服务任务协调调度方 法,从而实现对微服务进行有效调度,提高调度效率,避免调度出错导致同一任务多次执行 等错误的发生;同时,提高系统的容灾能力。 为达到上述目的,本发明第三方面实施例提出了一种计算机设备,包括存储器、处 理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时, 实现如上述的微服务任务协调调度方法。 根据本发明实施例的计算机设备,通过存储器对微服务任务协调调度程序进行存 储,以使得处理器在执行该微服务任务协调调度程序时,实现如上述的微服务任务协调调 度方法,从而实现对微服务进行有效调度,提高调度效率,避免调度出错导致同一任务多次 执行等错误的发生;同时,提高系统的容灾能力。 为达到上述目的,本发明第四方面实施例提出了一种微服务任务协调调度系统, 包括:任务获取模块,所述任务获取模块用于获取微服务调用请求,并根据所述微服务调用 请求计算相应的任务执行信息,以及根据所述任务执行信息生成任务队列;持久化模块,所 述持久化模块用于将所述任务执行信息持久化存储;任务调度模块,所述任务调度模块用 于依序判断所述任务队列中的任务是否正在被执行,并在该任务未被执行时获取存活服务 节点列表,以及根据所述存活服务节点列表为该任务随机分配执行服务节点,以便所述执 行服务节点根据所述任务执行信息执行任务。 根据本发明实施例的微服务任务协调调度系统,通过设置任务获取模块用于获取 微服务调用请求,并根据微服务调用请求计算相应的任务执行信息,以及根据任务执行信 息生成任务队列;持久化模块用于将任务执行信息持久化存储;任务调度模块用于依序判 断任务队列中的任务是否正在被执行,并在该任务未被执行时获取存活服务节点列表,以 及根据存活服务节点列表为该任务随机分配执行服务节点,以便执行服务节点根据任务执 行信息执行任务;从而实现对微服务进行有效调度,提高调度效率,避免调度出错导致同一 任务多次执行等错误的发生;同时,提高系统的容灾能力。 另外,根据本发明上述实施例提出的微服务任务协调调度系统还可以具有如下附 5 CN 111580945 A 说 明 书 3/8 页 加的技术特征: 可选地,在根据所述存活服务节点列表为该任务随机分配执行服务节点之前,还 包括:获取每个存活服务节点列表对应的心跳信息,并根据所述心跳信息计算每个存活服 务节点对应的存活时间,以及将存活时间最久的存活服务节点选举为主节点,以便所述主 节点根据所述存活服务节点列表为任务随机分配执行服务节点。 可选地,所述任务执行信息包括:任务执行时间、任务调用方法和任务对应的api 接口。 附图说明 图1为根据本发明实施例的微服务任务协调调度方法的流程示意图; 图2为根据本发明另一实施例的微服务任务协调调度方法的流程示意图; 图3为根据本发明实施例的微服务任务协调调度系统的方框示意图。
下载此资料需消耗2积分,
分享到:
收藏