From 8056d877bd596463d3e1c218b1a0d576776a8bf9 Mon Sep 17 00:00:00 2001 From: ykxiao Date: Mon, 4 Aug 2025 17:16:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _sidebar.md | 4 +++- zh-cn/excel_output_process.md | 30 ++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 zh-cn/excel_output_process.md diff --git a/_sidebar.md b/_sidebar.md index 8392895..9a1495f 100644 --- a/_sidebar.md +++ b/_sidebar.md @@ -9,4 +9,6 @@ * **Ai服务模块** * [Ai服务接口功能](zh-cn/ai_function) * [Ai服务接口列表](zh-cn/ai_service) -* **EasyApp接口服务** \ No newline at end of file +* **EasyApp接口服务** +* **Excel服务模块** + * [导出/导入](zh-cn/excel_output_process) \ No newline at end of file diff --git a/zh-cn/excel_output_process.md b/zh-cn/excel_output_process.md new file mode 100644 index 0000000..79e8b9e --- /dev/null +++ b/zh-cn/excel_output_process.md @@ -0,0 +1,30 @@ +# 导出、导入任务 + +> 处理千万行数据必须分页、分块,避免内存溢出。 + +## 导出流程 + +--- + +### 1. 队列设计 +系统整体导出分为以下流程: + +- OpenSpout 流式写入(内存友好) +- 分页查询 + 生成器 Generator(避免全量加载) +- 进度推送(SSE) +- 协程上传 OSS +- GC 优化 +- 清理临时文件 + +```mermaid +graph TD +A[用户点击导出] --> B[生成任务, 发送 AMQP 消息] +B --> C[AMQP Consumer 消费消息] +C --> D[加锁, 启动协程] +D --> E[立即返回 ACK] +C --> F[RabbitMQ 确认完成] +D --> G[协程执行 runExport] +G --> H[分页流式写入 Excel] +H --> I[上传 OSS] +I --> J[记录任务, 推送完成] +```