【07】JSONDecodeError —— pickle 不可序列化导致进程池级联崩溃

发布时间:2026/7/13 19:18:33
【07】JSONDecodeError —— pickle 不可序列化导致进程池级联崩溃 【07】JSONDecodeError —— 一个 JSON 解析错误,搞垮了整个进程池本文案例来自 psf/requests GitHub Issue #6628,适配至国内生产环境后验证。TL;DR用concurrent.futures.ProcessPoolExecutor并发调 API,某个 worker 返回了requests.exceptions.JSONDecodeError,结果不是那一个 task 失败——整个进程池崩溃,所有正在跑的 task 全部丢失。根因是JSONDecodeError实例的 pickle 序列化在某些条件下会失败,导致 worker 进程异常终止 →BrokenProcessPool。解决方案:方案 A(包装异常为可序列化类型)、方案 B(改用ThreadPoolExecutor)、方案 C(json.loads()预检)。现象环境fromconcurrent.futures