[发明专利]一种基于AMQP协议的高可靠性任务调度方法和系统有效
| 申请号: | 201710985447.2 | 申请日: | 2017-10-20 |
| 公开(公告)号: | CN107943567B | 公开(公告)日: | 2021-12-28 |
| 发明(设计)人: | 孙耀辉 | 申请(专利权)人: | 北京知道未来信息技术有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/54 |
| 代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 邱晓锋 |
| 地址: | 100102 北京市朝阳区阜*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 amqp 协议 可靠性 任务 调度 方法 系统 | ||
本发明涉及一种基于AMQP协议的高可靠性任务调度方法和系统。该方法包括:1)将任务拆分为若干子任务,并将子任务放入任务队列;2)记录未收到确认回执的子任务状态到子任务状态集,并将子任务状态集持久化存储;3)从任务队列中获取子任务,然后执行子任务并将执行结果放入结果队列;4)从结果队列中获取执行结果并将其作为确认回执,从子任务状态集中删除对应子任务的状态信息,并将更新后的子任务状态集持久化存储。当灾备场景发生时,从持久化存储中获取子任务状态集,重新生成子任务并恢复到任务队列中。本发明有效避免了任务的重复调度、任务和任务结果丢失等问题的发生,保证了调度系统的可靠性和任务结果的高可靠性。
技术领域
本发明属于信息技术领域,具体涉及一种基于AMQP协议的高可靠性任务调度方法和系统。
背景技术
任务调度是指基于给定时间点、给定时间间隔或者给定执行次数自动执行任务。而为了保证任务进度反馈的实时性,任务调度算法一般会将一个任务拆分为若干小任务。任务调度算法适用于生产者、消费者模型,其中生产者负责将任务拆分为子任务,消费者负责执行子任务并输出执行结果,子任务和输出结果的传递一般通过消息队列实现。
一般情况下,任务调度算法仅需要关注在正常场景下被拆分后的子任务是否都被正确的调度并回收执行结果。这类调度算法在灾备场景下经常会出现子任务的丢失和重复调度等问题。
现有实现方案生产者队列(即任务队列)与消费者队列(即结果队列)为两个相互独立的队列,生产者负责将拆分后的子任务放入任务队列,消费者负责从任务队列中获取子任务执行并将执行后产生的结果放入结果队列。任务队列与结果队列通常常驻内存,不考虑持久化存储。任务与结果数据的传输也一般采用自动确认模式,即消息被放入队列后即认为队列另一端的生产者或消费者已成功接收到此消息。
工程实践中,任务调度系统一般在任务需要长时间、周期性运行且无人值守的场景下被大范围使用。现有技术方案存在消息不进行持久化存储和缺乏有效的消息确认和重传机制等问题,当应用失败、服务器意外掉电或机房断电等灾备场景发生时无法进行容灾恢复。这些问题会导致任务无法继续正常执行、任务结果数据丢失等严重问题,造成巨大的时间和资源上的浪费。
发明内容
本发明针对上述问题,提供基于AMQP协议的高可靠性任务调度方法和系统,能够有效提升任务调度的可靠性。
本发明采用的技术方案如下:
一种基于AMQP协议的高可靠性任务调度方法,包括以下步骤:
1)将任务拆分为若干子任务,并将子任务放入任务队列;
2)记录未收到确认回执的子任务状态到子任务状态集,并将子任务状态集持久化存储;
3)从任务队列中获取子任务,然后执行子任务并将执行结果放入结果队列;
4)从结果队列中获取执行结果并将其作为确认回执,从子任务状态集中删除对应子任务的状态信息,并将更新后的子任务状态集持久化存储。
进一步地,当没有灾备场景发生时,重复步骤3)、4)直到任务执行结束。
进一步地,当灾备场景发生时,从持久化存储中获取子任务状态集,按照子任务状态集中子任务的状态重新生成子任务,并将子任务恢复到任务队列中,使得子任务能够继续执行。
进一步地,每个子任务均有一个唯一ID作为子任务的唯一标识。
进一步地,执行子任务后返回的执行结果中包含对应子任务的ID;从结果队列中获取到执行结果后从其中获取子任务ID作为确认回执,并从子任务状态集中删除对应子任务ID的状态信息,然后将更新后的状态集持久化存储。
一种基于AMQP协议的高可靠性任务调度系统,其包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京知道未来信息技术有限公司,未经北京知道未来信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710985447.2/2.html,转载请声明来源钻瓜专利网。





