欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 分享如何通过Mq、Redis、XxlJob实现算法任务的异步解耦调度

分享如何通过Mq、Redis、XxlJob实现算法任务的异步解耦调度

2025/2/11 4:42:41 来源:https://blog.csdn.net/m0_74969835/article/details/145537725  浏览:    关键词:分享如何通过Mq、Redis、XxlJob实现算法任务的异步解耦调度

一、背景

1.1 产品简介

基于大模型塔斯,整合传统的多项能力(NLP、OCR、CV等),构建以场景为中心的新型智能文档平台。通过文档审阅,实现结构化、半结构化和非结构化文档的信息获取、处理及审核,同时基于大模型,提供文档问答、辅助阅读等能力。

1.2 文档说明

当用户使用产品的算法能力处理文档时,因文档大小、算法资源等因素,获取算法处理结果的时长具有不确定性,所以需要一套稳定、高效的异步解耦算法任务的技术方案来调度算法任务。本文档从技术的角度分享是如何进行算法任务调度,并为大家实现异步解耦调度任务提供思路。

二、实现思路 

2.1.1 步骤解读

1、2:业务服务通过mq发送执行算法任务消息给调度服务

3:任务记录落库

4:定时任务读取数据库中的未执行任务记录

5:检查执行任务是否达到上限,未达到则把任务存入redis任务执行队列

6:创建任务执行记录数据

7:定时任务从redis中获取任务执行队列

8:读取任务执行队列中需要执行的任务,向算法服务发起异步处理请求

9:将执行的任务信息存入等待结果队列,并检查等待结果队列中的任务是否超时,超时则清除,并通知业务服务任务超时

10:更新任务执行记录数据

11:算法服务处理后将结果存入oss

12:算法服务请求调度服务,通知任务执行完成

13:将完成的任务从等待结果队列中清除

14:更新任务执行记录数据

15、16:将任务结束消息通过mq通知业务服务

17:业务服务从oss读取算法处理结果

2.1 简易时序图

2.1.2 简易时序图深入解析

通过细化时序图的每个步骤,深入探讨IDP·文档审阅平台如何高效地实现算法任务调度,确保系统在处理大量、多样化的文档时,保持高度的灵活性与稳定性。

  • 步骤1-2: 业务服务利用消息队列(MQ)向调度服务传递执行算法任务的需求。这一设计旨在解耦业务逻辑与算法处理,提高系统的可扩展性和响应速度。MQ作为中间件,能够有效缓冲瞬时高峰流量,保证消息的可靠传输。
  • 步骤3: 任务记录被持久化至数据库,这是为了确保任务的可追踪性和审计能力,即便在系统故障情况下也能恢复任务状态。
  • 步骤4-5: 定时任务周期性地查询数据库中待处理的任务,通过智能判断当前系统负载(如算法服务的执行任务上限),决定是否将新任务加入到Redis任务执行队列。Redis以其高速的读写性能,适合作为高并发场景下的任务缓存队列。
  • 步骤6-8: 创建任务执行记录,并通过定时任务从Redis队列中提取任务,向算法服务发起异步请求。异步处理机制允许算法服务并行处理多个任务,显著提升整体吞吐量。
  • 步骤9: 引入等待结果队列和超时检测机制,确保即使在算法处理异常延迟的情况下,也能及时反馈给业务侧,维持用户体验。超时任务的清理与通知机制,是保障系统健康运行的关键。
  • 步骤10-14: 算法服务处理完毕后,结果存储于对象存储服务(OSS),随后通知调度服务任务完成。调度服务据此更新任务状态,并从等待结果队列中移除已完成任务。这系列操作确保了任务生命周期管理的闭环,提高了资源利用率。

步骤15-16: 通过MQ通知业务服务任务结束,业务服务即可从OSS获取处理结果,完成文档处理流程。这种设计确保了数据处理的高效性和低延迟性

主要的是思路,代码就不放了~

四、结语

在文档审阅的算法任务调度体系中,异步解耦的设计理念发挥了至关重要的作用。通过将任务的提交与执行分离,业务服务无需等待算法处理结果,极大地提高了系统的响应速度和整体性能。任务调度机制则确保了算法任务能够有条不紊地进行。从消息队列的任务分发,到定时任务的入队和执行管理,再到超时清理和回调通知,每一个环节都紧密配合,保障了任务的高效执行和系统的稳定运行。

这种异步解耦与任务调度的完美结合,为智能文档平台的发展奠定了坚实的基础。未来,我们将持续探索和创新,进一步优化异步解耦和任务调度的策略,以适应不断增长的业务需求和更加复杂的技术环境,为用户带来更加卓越的文档处理体验。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com