You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

sys.exit(-(256 - signum))报错是Celery还是requests/sqlalchemy的问题?

问题解答

结论

这个SystemExit错误和requests、SQLAlchemy无关,属于Celery生态的问题,根源来自Celery的进程池依赖库billiard。

原因说明

你观察到网络请求、数据库查询两类完全无关的操作都抛出相同错误,本质是巧合:两类操作都是阻塞调用,刚好在执行阻塞逻辑时,Celery工作进程收到了终止信号,billiard内置的_shutdown_cleanup钩子被触发,直接调用sys.exit()抛出SystemExit异常,这个异常恰好落在了正在执行的阻塞调用栈上,所以看起来像是requests或SQLAlchemy抛出的错误。

常见触发场景

  • Celery任务配置的软/硬超时时间小于请求、数据库操作的实际耗时,任务执行到对应阻塞逻辑时刚好触发超时,被worker强制终止
  • Celery worker进程收到了重启、退出指令,正在运行的任务被强制清理
  • 系统资源不足,内核主动杀掉了Celery工作进程

排查建议

  • 检查Celery任务的soft_time_limit、time_limit配置,确认阈值是否符合业务实际耗时要求
  • 拉取错误发生时段的Celery worker日志,查看是否有任务超时、worker重启/退出的相关记录
  • 可以在任务外层额外捕获SystemExit异常做上下文打点,确认触发时的任务运行参数,缩小定位范围

内容的提问来源于stack exchange,提问作者Jaden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 18:18:03