python教程技术文章
-
Python 用 functools.lru_cache 缓存配置读取函数后,配置文件已经更新,接口却还返回旧值。问题通常不在文件读取,而在缓存键和清理时机。本文从一个可复现的小场景出发,说明 cache_clear、参数设计和并发刷新时需要核对的边界。339 收藏 -
Python 异步接口用 asyncio.wait_for 设置超时后,日志里却还能看到后台任务继续运行,通常不是 wait_for 失效,而是任务引用、shield 或 finally 清理边界没有处理好。本文用可复现代码拆开超时取消语义,并给出资源回收和验证方法。158 收藏 -
支付对账中出现 0.01 元差异时,先排除二进制浮点输入,再用 Decimal.quantize 和 ROUND_HALF_UP 固定金额舍入规则。本文从复现、定位到回归验证给出一套可运行的 Python 排查方案。374 收藏 -
Python multiprocessing.Pool 在服务停机时如果没有区分 close、terminate 和 join,主进程可能已经退出流程,子进程却仍然占着资源。本文用批处理场景复现停机卡住、按顺序解释三个方法的职责,并给出异常、超时和回滚检查清单。133 收藏 -
Python 服务把日志直接写入网络或磁盘时,慢 I/O 会反过来拖住请求线程。本文用 logging.QueueHandler 和 QueueListener 拆开产生日志与写日志,说明队列满载、异常处理和停机收尾的边界。322 收藏 -
Python sqlite3 事务回滚经常不是数据库坏了,而是连接的 autocommit、旧式 isolation_level 与 with 代码块边界没有对齐。用一个可复现实验看清提交、回滚和异常传播。136 收藏 -
Python 调用外部命令超时后,杀掉父进程并不代表子进程和孙进程都结束。本文用 start_new_session 创建独立进程组,再按 TERM、等待、KILL 的顺序清理,并补上超时、权限和回归检查。496 收藏 -
临时目录清理最容易出问题的地方,不是调用 unlink,而是筛选条件太宽、相对路径越界和删错文件后无法复盘。用 pathlib 统一解析路径,按后缀和 mtime 过滤,先写入待删清单再处理,就能把一次性脚本变成可检查、可回退的清理流程。219 收藏 -
asyncio.gather 遇到子任务异常时,默认只把第一个异常交给调用方,其他任务可能仍在运行。本文用可复现实验说明 return_exceptions、Task.cancel 和 finally 清理之间的边界。210 收藏 -
Python 服务在并发升高后,日志格式化和磁盘写入容易挤占请求线程。本文用 QueueHandler 与 QueueListener 拆开日志生产和落盘,比较直接写文件、队列日志两种方案,给出可运行示例、压测口径与优雅退出处理。268 收藏 -
面对百万行 CSV,不要一上来就把文件整体读进内存。本文用同一份订单导出数据比较 csv 流式读取、pandas chunksize 和 SQLite 分批导入,给出按内存、清洗复杂度和后续查询需求选方案的可运行边界。330 收藏 -
文章 · python教程 | 2星期前 | 并发 · python · 故障排查 · asyncio · 任务取消 · Python asyncio.create_task Python 任务取消 asyncio CancelledError Python 异步任务收尾
Python 异步接口超时后,后台任务仍在访问数据库或写文件,常见原因不是 cancel() 失效,而是任务没有被保存、取消没有被等待,或协程吞掉了 CancelledError。本文用一个可复现的 asyncio 故障现场拆开这条链路,并给出带超时、回收和日志核对的改法。490 收藏 -
Python 批量调用外部接口时,任务越多不一定越快。本文从订单补数任务的耗时基线出发,用 httpx 连接池、asyncio.Semaphore 和超时预算控制请求数量,并通过压测结果说明配置边界与排查方法。196 收藏 -
批量导出不能只生成一个 CSV 文件。本文用 Python 标准库实现任务文件夹、状态文件、原子写入、结果查询和过期清理,让下载结果可追踪且不会长期堆积。495 收藏 -
文章 · python教程 | 2星期前 | 时间处理 · python · zoneinfo · 后端开发 · UTC · Python DateTime UTC 夏令时 zoneinfo fold
预约、提醒和活动排期里,用户输入的本地时间不能直接当 UTC 保存。本文用一个小型预约转换器说明 Python zoneinfo 的最小用法:保留时区键、把带时区时间转成 UTC,并在夏令时回拨造成的重复时间里明确记录 fold 选择。469 收藏