mcpField
P
python-infrastructure

python-infrastructure

github.com/julianobarbosa开发1456 次安装2 天前更新
代码仓库

关于 python-infrastructure

面向 Python 开发者的生产可靠性技能,帮助设计后台任务和网络操作。它按需提供任务、重试与可观测性指导,并说明这些领域如何协同。

主要功能

  1. 01设计后台任务与工作进程
  2. 02制定重试、退避和停止规则
  3. 03埋点日志、指标与追踪
  4. 04协调单项功能的可靠性实践

适用场景

  1. 01安排周期任务或异步工作进程
  2. 02处理暂时性网络或 API 故障
  3. 03监控生产环境中的服务运行情况

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/julianobarbosa/claude-code-skills --skill python-infrastructure

安装后在 Claude Code 中输入/python-infrastructure确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

References/
background-jobs.md
observability.md
resilience.md

详细介绍

Python 基础设施

Python 服务的系统可靠性问题,按实际代码中常常一起使用的功能归类:排入队列的任务(background-jobs)需要在同一调用路径上进行重试(resilience)和监控(observability)。

范围路由

如果你需要……阅读
设计任务队列、安排周期性任务,或运行异步工作进程(Celery、RQ、asyncio 任务池)References/background-jobs.md
决定重试什么、采用何种退避策略,以及何时停止(tenacity 模式、幂等性、熔断器)References/resilience.md
使用结构化日志、指标和追踪为服务添加监控(structlog、OpenTelemetry、四大黄金信号)References/observability.md

决策树

Operation can fail transiently (network/IO/3rd-party API)?
  -> resilience.md (retry policy)
Operation runs out-of-request (email, image processing, batch)?
  -> background-jobs.md (queue + worker)
Need to know what's happening in production?
  -> observability.md (logs/metrics/traces)
All three at once for one feature?
  -> all three references, in that order.

跨技能边界

  • writing-python — 如何编写函数。本技能 — 如何让函数在生产环境中稳定运行。
  • python-error-handling — 应抛出什么异常。本技能 — 异常跨越网络边界时该怎么处理。
  • python-resource-management — 如何清理资源(上下文管理器)。本技能 — 资源获取失败时如何持续重试。

注意事项

  • 没有退避的重试会放大拒绝服务(DoS)问题。 下游服务故障后,N 个客户端立即重试,会造成流量突增,使下游服务持续宕机。从一开始就默认使用指数退避和抖动。
  • 重试非幂等操作会重复产生副作用。 POST 请求失败后重试,可能导致扣款两次。重试失败操作时,务必同时使用幂等键,或将该操作标记为不可重试。
  • 异步工作进程中的同步代码会阻塞事件循环。 在 asyncio 工作进程中调用一个“快速”的 requests 请求也会降低吞吐量。请使用异步客户端(httpx、aiohttp),或在执行器中运行同步代码。
  • 结构化日志和指标面向不同的受众。 日志回答“这一个请求发生了什么”;指标回答“所有请求总体情况如何”。不要试图从一种数据推导另一种——两者都要进行监控。
  • 追踪上下文需要显式跨队列边界传递。 将任务推送到 Celery 会丢失当前追踪,除非将追踪上下文序列化到任务头中,并在工作进程中恢复。不要想当然地认为它“会自动生效”;请先阅读 OpenTelemetry-Celery 传播器文档。

评论

支持 Markdown