基于RabbitMQ实现可恢复和支持长时间间隔的任务调度的方法与流程

文档序号:37313540发布日期:2024-03-13 21:05阅读:11来源:国知局
基于RabbitMQ实现可恢复和支持长时间间隔的任务调度的方法与流程

本发明涉及任务调度,特别是基于rabbitmq实现可恢复和支持长时间间隔的任务调度的方法。


背景技术:

1、在系统项目开发中有需要周期循环执行指定任务的要求需要。如:定时生成报表、每隔30秒释放取消支付的库存锁定、每月生成对库存信息的预警采购信息等。

2、传统方式基于每秒检查是否有需要执行的任务,取出需要执行的任务信息,处理后开始任务执行。这需要任务信息存储系统具备事务性,并且调用其式事务性处理能力来完成每一秒循环中的获取数据、判断、任务执行、数据更新的流程。

3、在不使用有事务性能力的存储软件时或无法使用其事务性能力时将无法保障状态数据的一致性问题,导致任务的执行不稳定,这使使用传统方式实现定时任务业务必须要具备特定的能力资源,降低了项目对资源选中的灵活性。

4、而采用rabbit mq死信队列实现定时任务由于其队列属性参数ttl受到int 32最大值的限制任务的延时执行时间不能过长,同时有从任务信息的数据库存储到任务启动在rabbit mq 中创建相应的队列信息再到消费信息执行任务,回写下次任务执行队列信息整个过程中存在多次的应用间的信息传递与调用,如过程中出现异常将会丢失或终止任务无法恢复。


技术实现思路

1、本发明解决现有技术不足提供一种基于rabbitmq实现可恢复和支持长时间间隔的任务调度的方法。

2、基于rabbitmq实现可恢复和支持长时间间隔的任务调度的方法,包括如下步骤:

3、以数据库作为任务基本信息的存储介质,创建一个展示任务基本信息的可视化界面,提供创建任务、启动、停止、查看执行日志功能;

4、在注册rabbit mq的消费监听事件中根据获取到的队列中的任务信息实现对任务的实际执行与调用;

5、在任务执行与调用中加入对任务执行结果的记录日志的创建与存储可同时提供可视化界面展示日志信息,实现对任务执行情况的记录与查看;

6、通过可视化界面显示redis 中存储的任务状态信息,可对任务的执行状态进行观察。

7、所述任务执行中使用corn表达式创建任务信息,通过corn指定的时间执行任务循环,对下次执行时间的验证突破rabbitmq死信队列ttl参数int 32 的数值限制,在流程任意阶段出现错误的情况下自行回复任务流程。

8、本发明有益效果:

9、1、有鉴于此,本技术用于在不使用事务能力数据库的情况下,使用rabbit mq结合状态信息redis存储与执行时间校验逻辑实现可恢复和支持长时间间隔的任务调度。

10、2、为实现突破rabbit mq ttl参数限制造成的定时循环间隔时间限制问题,本发明提供了一种对实际执行时间传递判断的方式循环延迟执行时间。

11、3、使用redis对任务执行状态进行分阶段存储,使任务无论在任何阶段异常终止后都可以自动恢复执行流程。



技术特征:

1.基于rabbitmq实现可恢复和支持长时间间隔的任务调度的方法,其特征在于包括如下步骤:

2.根据权利要求1所述基于rabbitmq实现可恢复和支持长时间间隔的任务调度的方法,其特征在于所述任务执行中使用corn表达式创建任务信息,通过corn指定的时间执行任务循环,对下次执行时间的验证突破rabbitmq死信队列ttl参数int 32 的数值限制,在流程任意阶段出现错误的情况下自行回复任务流程。


技术总结
本发明涉及任务调度技术领域,特别是基于RabbitMQ实现可恢复和支持长时间间隔的任务调度的方法。以数据库作为任务基本信息的存储介质,创建一个展示任务基本信息的可视化界面,提供创建任务、启动、停止、查看执行日志功能;在注册RabbitMQ的消费监听事件中根据获取到的队列中的任务信息实现对任务的实际执行与调用;在任务执行与调用中加入对任务执行结果的记录日志的创建与存储可同时提供可视化界面展示日志信息,实现对任务执行情况的记录与查看;通过可视化界面显示Redis中存储的任务状态信息,可对任务的执行状态进行观察。用于在不使用事务能力数据库的情况下,使用RabbitMQ结合状态信息Redis存储与执行时间校验逻辑实现可恢复和支持长时间间隔的任务调度。

技术研发人员:蔡文强,刘出息,孟长兴,毛文凭,魏子民,毛智勇,李德辉,张福鑫
受保护的技术使用者:中电信医疗健康科技有限公司
技术研发日:
技术公布日:2024/3/12
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1