文档 OCR 识别优化为异步思路逻辑

文档 OCR 识别优化

同步处理(原逻辑)

  • 当前系统识别文档为同步处理,已调整过 python 服务部分参数,但 一份40M左右文档识别仍需要几十秒
    • 文档转为图片集合
    • for 循环中一直调用 ocr 识别

异步处理

  • nginx 增加 requestId header 参数
  • 后端获取到 requestId 参数,保存 threadLocal,键值数据为对应文档 id,requestId 需要在消息体中一直传递
  • 后端获取请求数据(生产者),将文档转为图片集合,并标识页码索引(属于文档第几页),存放 mq 队列,python多实例 服务(消费者)绑定队列,消费图片信息,OCR 识别以后发送 mq 至队列
  • 后端(消费者)接收 python 识别完成的消息进行后续处理
    • 获取 requestId 对应的文档 id 绑定文档
    • 拼接识别数据(requestId + 当前 ocr 识别文档页码)
    • 疑问点: 不知道接收到的识别数据属于当前文档什么部分,无法正确拼接数据,只能通过当前 ocr 识别的文档页码来处理
    • 具体实现逻辑待编码
相关推荐
奈葵4 分钟前
JAVA EE
java·java-ee
艺杯羹23 分钟前
二级C语言题解:孤独数、找最长子串、返回两数组交集
c语言·开发语言·数据结构·算法
比特在路上26 分钟前
ListOJ13:环形链表(判断是否为环形链表)
c语言·开发语言·数据结构·链表
ChinaRainbowSea29 分钟前
三. Redis 基本指令(Redis 快速入门-03)
java·数据库·redis·缓存·bootstrap·nosql
DEARM LINER29 分钟前
RabbitMQ 分布式高可用
java·spring boot·分布式·rabbitmq
weisian15136 分钟前
消息队列篇--扩展篇--码表及编码解码(理解字符字节和二进制,了解ASCII和Unicode,了解UTF-8和UTF-16,了解字符和二进制等具体转化过程等)
java·开发语言
xianwu54339 分钟前
反向代理模块。。
开发语言·网络·数据库·c++·mysql
呦呦鹿鸣Rzh43 分钟前
实现标题-超链接
java·前端·javascript
Bug退退退1231 小时前
JVM常见知识点
java·jvm
{⌐■_■}1 小时前
【Validator】字段验证器struct与多层级验证,go案例
开发语言·信息可视化·golang