首页 文章 精选 留言 我的

文章列表

共 222054 篇
Go 语言中如何正确使用 context 控制 goroutine 超时与取消

Go 语言中如何正确使用 context 控制 goroutine 超时与取消

在 Go 服务端开发里,经常遇到一个 HTTP 请求触发多个下游调用(数据库、RPC、缓存)的情况。如果某个下游迟迟不返回,goroutine 就会一直挂在那里,连接池、内存和文件描述符都会被慢慢耗尽。context 包就是为解决这类问题设计的:它让调用链上的所有 goroutine 共享同一个取消信号和截止时间。很多人第一次用 context 时会直接写 ...

Node.js 中 Promise.all 与 for await...of 处理异步迭代的踩坑记录

Node.js 中 Promise.all 与 for await...of 处理异步迭代的踩坑记录

最近在做一个日志聚合服务时,需要从多个数据源并发拉取分页数据,每个数据源返回一个异步迭代器。我一开始想用 Promise.all 把每个迭代器的 next() 调用并发起来,结果发现内存飙升且部分请求被上游限流。后来改用 for await...of 串行处理,又遇到了吞吐量不足的问题。这篇文章会聊一聊 Node.js 中 Promise.all 和 for...

Node.js 中 exec 与 spawn 的执行差异:为什么切换后内存暴涨问题消失了

Node.js 中 exec 与 spawn 的执行差异:为什么切换后内存暴涨问题消失了

有一次排查一个 Node.js 服务的内存增长问题,发现每次调用 child_process.exec 执行 ffmpeg 命令后,堆内存都会明显上升,重启后回落。虽然命令本身只输出几 KB 的日志,但进程 RSS 每次增加几十 MB,在并发场景下甚至触发 OOM。最初怀疑是 ffmpeg 子进程没退出,用 ps 检查后发现子进程正常结束,问题出在父进程上。...

Node.js 进程为什么会退出:从事件循环到 unhandledRejection 的排查实录

Node.js 进程为什么会退出:从事件循环到 unhandledRejection 的排查实录

线上一个用 Node.js 写的定时任务服务最近总是隔几天就没了,没有 core dump,没有明显的 OOM 日志,PM2 虽然配置了自动重启,但重启后过一段时间又会消失。这个服务本身逻辑不复杂,主要是定时从数据库拉取任务、调用第三方 API、写入结果,用的还是 Node 14,没有引入太多框架。排查这类“静默退出”问题,最怕的是只看到进程没了,却不知道它...

从零用 Java 实现小红书 SpringBoot Vue UniApp(23)笔记话题多对多:一条笔记进多个话题池

从零用 Java 实现小红书 SpringBoot Vue UniApp(23)笔记话题多对多:一条笔记进多个话题池

前言早期实现里,一篇笔记只挂一个 topic_id:运营在后台改话题、用户在发现页按话题筛,都够用。但真实社区里常见 同一篇笔记同时出现在「穿搭」和「好物分享」 两个话题池——单字段就卡住了。在不破坏旧数据的前提下,增加关联表 member_note_topic_rel,主话题仍写 member_note.topic_id(取多选列表第一个),其余话题走关联...

JavaScript 中 structuredClone 的深拷贝:为什么有时比 JSON.parse(JSON.stringify()) 更可靠

JavaScript 中 structuredClone 的深拷贝:为什么有时比 JSON.parse(JSON.stringify()) 更可靠

日常开发里经常需要把一个对象完整复制出来,避免修改副本时影响原数据。过去最常见写法是 JSON.parse(JSON.stringify(obj)),它简单、兼容性好,但遇到 Date、RegExp、Map、Set、ArrayBuffer、循环引用时会直接失效:日期变成字符串,正则变为空对象,Map 和 Set 直接变成 {},循环引用会抛出异常。浏览器和 ...

React 事件处理函数每次渲染都重新创建?useCallback 的真实使用场景

React 事件处理函数每次渲染都重新创建?useCallback 的真实使用场景

写 React 组件时经常看到这样的代码:父组件把一个内联函数传给子组件,子组件用 React.memo 包裹,结果发现子组件还是频繁重渲染。打开 React DevTools 的 highlight updates 选项,输入框每敲一个字符,整个列表都在闪。翻文档会看到 useCallback 的说明,但复制示例改完却经常没效果——依赖项写错、把 stat...

TypeScript 中的 satisfies 操作符解决了什么问题?

TypeScript 中的 satisfies 操作符解决了什么问题?

在 TypeScript 4.9 之前,我们经常遇到一种尴尬的局面:想用类型标注来约束一个对象字面量,确保它符合某个接口,但又希望保留对象字面量中每个属性的窄化类型。用 : Type 注解会导致类型被拓宽到接口定义,丢失字面量信息;用 as const 又无法校验结构是否满足接口,写错了属性名或类型只能等运行时才发现。satisfies 操作符正是为了填补这...

噪声记录仪与听漏仪:分区筛查到定点复核

噪声记录仪与听漏仪:分区筛查到定点复核

供水管网漏水排查中,噪声记录仪与听漏仪并非相互替代的两种设备。前者侧重在多个节点持续或周期采集管道振动与漏水噪声,帮助判断“哪个区域或管段值得进一步检查”;后者由人员携带到现场,对阀门、消火栓、管线地面等位置逐点听测,帮助把疑点缩小到便于复核和开挖的范围。把二者放进“分区筛查—管段排查—定点复核—维修验证”的流程,能减少盲目巡查,也能降低把报警点直接当成漏点...

充电站高并发架构:流量突增时的限流、弹性与降级

充电站高并发架构:流量突增时的限流、弹性与降级

在「车-桩-网一体化」的智慧能源网络演进中,充电服务已从单点补能行为升级为城市级实时协同系统。当节假日出行高峰、新能源车型集中交付或极端天气触发区域性补能需求激增时,充电平台面临典型的“脉冲式”高并发挑战——瞬时请求量可能数倍于日常均值,而业务连续性、响应确定性与用户体验一致性必须同步保障。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册