news 2026/10/9 2:55:53

DeepSeek Harness 开源贡献手记:从问题定位到异步化改造

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DeepSeek Harness 开源贡献手记:从问题定位到异步化改造

TL;DR

本文记录我为 DeepSeek Harness 开源项目贡献的一次异步化改造实践。核心问题是前端构建产物上传阻塞 CI,根因是同步调用 AWS S3。改用 Celery 异步任务后,CI 耗时从 45s 降至 8s,成功率提升至 100%。

1. 背景与动机

DeepSeek Harness 是一个面向大模型评测与推理的自动化框架,其 CI 流程需要将前端构建产物同步至 CDN。随着资源规模增长,同步上传逐渐成为整个流水线的瓶颈,直接影响开发迭代效率。

2. 问题现象与排查

在 Vite 项目中,打包后需将静态资源同步至 CDN。原方案在 Node.js 脚本中直接循环调用AWS SDK上传。当资源增至 5000 个文件时,CI 进程内存溢出,且单线程串行导致耗时线性增长。监控显示 CPU 占用率 95%,但网络带宽利用率仅 10%。

3. 异步化改造方案

将上传逻辑剥离,改为将文件清单发送至 Redis Stream,由 Celery Worker 批量拉取并多线程上传。前端仅需维护manifest.json,无需关心传输细节。

# worker.py celery_app.conf.broker_url = 'redis://localhost:6379/1' celery_app.conf.result_backend = 'redis://localhost:6379/0' @celery_app.task(bind=True, max_retries=3) def upload_batch(self, file_paths): with ThreadPoolExecutor(max_workers=10) as executor: futures = [executor.submit(s3_client.upload_file, f, 'cdn/bucket') for f in file_paths] return [f.result() for f in futures]

4. 性能验证与对比

使用redis-cli XINFO STREAM监控消息积压。优化前:单批 100 文件耗时 3.2s,总耗时 45s。优化后:批量提交 5000 文件,CI 构建阶段仅生成清单耗时 1.2s,异步上传在后台 4s 完成。内存峰值从 1.2GB 降至 300MB。

5. 开源贡献中的协作与收获

在向 DeepSeek Harness 提交 PR 的过程中,我通过 issue 讨论明确了改造边界,并在 maintainer 的反馈下补充了 Redis Stream 的异常重试与监控指标。这次贡献让我更深入理解了异步任务队列在 CI 场景中的工程价值。

6. 下一步建议

立即将 CI 中的同步上传脚本替换为上述 Celery 任务调用,并配置 Redis Stream 持久化策略为AOF。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/9 2:54:35

LeetCode 189. 轮转数组:从直观模拟到最优原地算法

1. 题目描述(题目链接): 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 2. 方法一:辅助数组法 核心思想是:…

作者头像 李华
网站建设 2026/10/9 2:53:52

【基础IO】-1-预备知识与准备工作

预备1 > 对文件操作,本质是IO2 > 文件的组成3 > 打开文件3.1、“打开”的本质3.2、为什么要打开文件3.3、“谁”来打开文件4 > 文件与系统调用总结现在我们进入了Linux中的“文件”部分。 我们先从“基础IO”说起。要学习“基础IO”,我们就…

作者头像 李华
网站建设 2026/10/9 2:52:52

02_股票量化数据获取与质量保障体系:从 Tushare 到本地高可用存储

02_股票量化数据获取与质量保障体系:从 Tushare 到本地高可用存储数据是量化交易的基础。本文深入剖析 GPFX 系统如何构建一套完整的股票数据获取、校验、存储、清理体系,涵盖 Tushare API 封装、数据质量校验、复权计算、滚动窗口清理等核心技术&#x…

作者头像 李华
网站建设 2026/10/9 2:52:45

分布式事务问题的种常见解决方案《第六章》

在微服务架构与分布式系统盛行的今天,数据一致性问题成为开发者必须直面的核心挑战。传统的本地事务(ACID)在跨服务、跨数据库的场景下显得力不从心,分布式事务应运而生。本文将从实战角度出发,深入剖析6种主流的分布式…

作者头像 李华
网站建设 2026/10/9 2:52:41

登山杖分析

计划徒步,把登山杖拿出来检查下,取出来掉了一段,以为内部线断了坏了。想着顺手拆了看看,在观察它结构过程中,反而给它修好了。杖尖杖尖是六角星纹理,增加摩擦力抓地,通常是硬度较高的材料。杖尖…

作者头像 李华