Fähigkeiten py-async-patterns

py-async-patterns

Sicher 🌐 Netzwerkzugriff⚙️ Externe Befehle🔑 Umgebungsvariablen

應用 Python 异步模式

异步 Python 代码经常出现竞争条件、会话泄漏和连接池问题。本技能提供了经过实战验证的 FastAPI 和 SQLAlchemy 模式,可防止常见的异步陷阱。

Unterstützt: Claude Codex Code(CC)
📊 71 Angemessen
1

Die Skill-ZIP herunterladen

2

In Claude hochladen

Gehe zu Einstellungen → Fähigkeiten → Skills → Skill hochladen

3

Einschalten und loslegen

Teste es

Verwendung von "py-async-patterns". 帮助我修复 FastAPI 应用中的会话生命周期问题。我遇到了 'Session is closed' 错误和连接超时。

Erwartetes Ergebnis:

  • 会话生命周期问题通常发生在会话超出请求作用域使用时。
  • 使用 FastAPI 的 Depends 进行依赖注入,将会话限定在每个请求范围内。
  • 始终使用异步上下文管理器:async with async_session() as session。
  • 切勿将会话存储在全局变量或模块级状态中。
  • 从生成依赖函数返回会话,将其传递给请求处理程序。
  • 请求完成后会话会自动关闭,防止泄漏。

Verwendung von "py-async-patterns". 我的端点中有多个独立的数据库查询运行缓慢。

Erwartetes Ergebnis:

  • 独立的查询可以使用 asyncio.gather() 并行运行。
  • 这会并发执行所有查询,减少总响应时间。
  • 依赖查询必须保持顺序执行以维护数据完整性。
  • 本技能提供了在并发和顺序执行之间选择的决策框架。

Verwendung von "py-async-patterns". 教我使用提交、回滚和刷新模式实现事务的正确方式。

Erwartetes Ergebnis:

  • 使用 session.begin() 作为上下文管理器来实现自动事务处理。
  • 上下文管理器在成功时提交,在异常时回滚。
  • 在提交后调用 session.refresh() 以获取数据库生成的值(如 ID 和 created_at)。
  • 对于复杂操作,使用显式的 try/except 进行手动提交和回滚。

Sicherheitsaudit

Sicher
v4 • 1/16/2026

Pure documentation skill containing markdown patterns and Python code examples. Contains no executable code, scripts, network calls, or file modifications. All external command references are in markdown code blocks showing grep/ruff commands for detection purposes only. The skill provides guidance through prompts and does not access or execute anything on user systems.

2
Gescannte Dateien
538
Analysierte Zeilen
3
befunde
4
Gesamtzahl Audits
Auditiert von: claude Audit-Verlauf anzeigen →

Qualitätsbewertung

38
Architektur
100
Wartbarkeit
87
Inhalt
30
Community
100
Sicherheit
91
Spezifikationskonformität

Was du bauen kannst

修复会话泄漏

识别并解决导致数据过时和连接耗尽的异步会话管理问题。

优化查询性能

使用 asyncio.gather 将顺序数据库查询转换为并行操作,实现更快的端点响应。

实现安全事务

使用正确的提交、回滚和刷新模式处理多步骤数据库操作。

Probiere diese Prompts

会话管理
帮助我修复 FastAPI 应用中的会话生命周期问题。我遇到了 'Session is closed' 错误和连接超时。
查询优化
我的端点中有多个独立的数据库查询运行缓慢。教我如何使用 asyncio.gather 并行运行它们。
事务安全性
我需要实现账户之间的多步骤转账操作。教我使用提交、回滚和刷新模式实现事务的正确方式。
后台操作
我的端点很慢,因为在处理后需要发送邮件和更新分析。教我如何使用 BackgroundTasks 或 asyncio.create_task 实现非阻塞操作。

Bewährte Verfahren

  • 始终使用依赖注入将 AsyncSession 限定在单个请求范围内
  • 对独立查询使用 asyncio.gather,对依赖查询使用顺序 await
  • 以一致的顺序获取数据库锁,防止并发转账时的死锁

Vermeiden

  • 存储跨请求存在的全局会话引用
  • 独立查询顺序执行而不是使用 asyncio.gather
  • 提交后忘记调用 session.refresh() 以获取数据库生成的值

Häufig gestellte Fragen

本技能是否适用于同步 SQLAlchemy?
不。本技能涵盖使用 create_async_engine 和 AsyncSession 的异步 SQLAlchemy 模式。同步模式使用不同的会话管理。
本技能推荐什么连接池设置?
对于 asyncpg,推荐使用 NullPool 以避免连接重用问题。这会为每个请求创建新连接,并在之后关闭它们。
我可以在其他异步框架中使用这些模式吗?
可以。会话生命周期和事务模式适用于任何使用 SQLAlchemy async 的异步 Python 框架。
本技能会访问我的数据或文件吗?
不。本技能仅通过提示提供指导。它不会读取、写入或执行您系统上的任何代码。
为什么我的异步代码会出现连接超时?
超时通常表示由于会话泄漏导致的连接池耗尽。检查会话是否正确关闭且未存储在全局变量中。
这与官方 SQLAlchemy 异步文档有何不同?
本技能提供了专门针对 FastAPI Web 应用程序的经过实战验证的模式,包括常见陷阱和检测命令。

Entwicklerdetails

Dateistruktur

📄 SKILL.md