Latest Notes

把日常问题写成可复用的答案。

这里收集技术实践、排错记录、阅读札记和一些生活观察。每一篇都尽量留下清晰的上下文、判断和解决路径。

Today 持续记录,慢慢变好

技术笔记、项目复盘、阅读摘录和问题清单。

开发 22 阅读

Python 批量回调全部处理最后一个任务:闭包晚绑定的复现与修复

批量注册三个导出任务,执行日志却出现三次同一个任务编号;回调数量正确,也没有异常。这时先检查回调如何绑定参数,再检查调度器是否重复投递。 本文使用进程内的零参数回调作为场景:注册阶段只保存函数,执行阶段才调用。示例不连接数据库、不访问网络,也不冒充真实生产事故。 现象:注册时正确,执行时全部变了 保存下面代码为 lat

阅读全文
数据库 44 阅读

SQLite 搜索百分号却返回所有商品:LIKE 通配符的定位与修复

场景与现象 后台有一个商品标题搜索框,产品约定是“包含输入文字”。运营想找标题里带 50% 的商品,却同时搜到了 500g;输入 _ 后,大部分非空标题都出现在结果里。接口已经使用 SQL 参数绑定,代码审查也没有发现字符串拼接。 下面复现的是搜索语义错误:输入中的特殊字符进入了 LIKE 模式。本文以 Python

阅读全文
开发 71 阅读

Python 手动运行正常,定时执行却找不到配置:相对路径的定位与修复

在项目目录运行脚本一切正常,交给定时任务后却报 FileNotFoundError。把配置文件再复制一份,错误消失了,程序却读到了旧配置。这两种现象往往来自同一个问题:程序把启动时的工作目录当成了配置文件所在目录。 本文用一个普通 Python 脚本演示取证、修复和回归测试。示例只读取本地文件,不依赖网络,不要求安装第

阅读全文
数据库 85 阅读

SQLite 导出只剩第一条:复用游标覆盖结果集的定位与修复

订单表有三条记录,导出任务正常结束,却只生成一条。没有 SQL 异常,也没有过滤条件变化。检查循环体后发现:遍历订单的游标,又被用来查询客户名称。 这类漏行先查游标的使用范围。增加超时或重试次数不会修复已经被替换的结果集。 适用场景与现象 本文针对 Python 标准库 sqlite3:外层逐条读取订单,内层查询关联信

阅读全文
开发 110 阅读

Python 环境变量设为 false 仍启用:布尔开关的定位与入口校验

适用场景与现象 一个批处理服务用 EXPORT_ENABLED 控制是否生成导出文件。发布配置里已经写了 false,应用重启后却仍进入导出分支。开发环境不设置该变量时,功能又能正常关闭。 下面用这个场景复现问题。它适用于直接读取环境变量的 Python 程序;如果项目使用配置框架,应先查明框架自己的布尔解析规则,避免

阅读全文
数据库 123 阅读

SQLite 更新主表后明细消失:INSERT OR REPLACE 级联删除的复现与修复

接口返回成功,主表记录也还在,但关联明细突然清空。遇到这种现象,先找到实际执行的 SQL:如果所谓“更新”用了 INSERT OR REPLACE,就要沿着删除路径排查。 本文用一个订单与明细模型复现问题,再把写入改成有明确冲突目标的 UPSERT。实验只使用内存数据库,不连接生产服务。 适用场景与现象 适用于 SQL

阅读全文
网络 174 阅读

POST 接口重定向后请求体丢失:301、302 与 307、308 的定位与修复

适用场景:地址跳转成功,业务请求却变了 接口从 /orders 迁移到 /orders/,或者网关增加域名规范化规则后,调用方开始收到 405、参数缺失,甚至收到 200 的 HTML 页面。调用日志只保留最终响应,看起来像后端突然不认识请求体。 这类问题先查重定向链:客户端发出的第一跳是 POST,不代表最终到达业务

阅读全文
开发 197 阅读

Python JSON 配置被静默覆盖:重复键的复现、定位与入口校验

配置导入接口返回成功,回读结果却与提交内容不一致。先检查客户端发出的原始 JSON:同一个对象里可能出现了两次 quota,而解析器只留下了后一个值。等数据变成字典,再严格的字段校验也找不回被覆盖的那一项。 本文以“批量任务额度配置”为例,把排查推进到解析入口,并提供可以独立运行的实现与回归测试。示例使用 Python

阅读全文
数据库 211 阅读

SQLite 设置超时仍立即报锁错误:WAL 旧快照升级失败的复现与修复

接口先查询计数器,再更新它。连接已经设置 timeout=5,更新却几乎立即返回 database is locked。把超时调到 30 秒仍然失败,而同一条 SQL 在新连接上可以成功。此时要检查失败连接是否持有旧的读快照。 本文针对 Python 3.12+ 标准库 sqlite3、本机文件数据库、WAL 模式和独

阅读全文