同時I/O操作、API、非ブロックシステムのためのasyncioパターンを使用して、高性能Pythonアプリケーションを構築します。
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“async-python-patterns”。 How do I run multiple async tasks concurrently in Python?
预期结果:
asyncio.gather()を使用して、複数のコルーチンを同時に実行します。例:results = await asyncio.gather(task1(), task2(), task3())。エラー処理には、return_exceptions=Trueを使用して、他のタスクを停止せずに失敗をキャッチします。
正在使用“async-python-patterns”。 What's the difference between asyncio.create_task and asyncio.ensure_future?
预期结果:
create_task()はコルーチンをイベントループで実行するようにスケジュールし、Taskを返します(Python 3.7+)。ensure_future()はコルーチンとfuturesの両方を受け入れ、Taskを返します。新しいコルーチンにはcreate_task()を、既存のfutureを受け取る可能性がある場合はensure_future()を使用してください。
正在使用“async-python-patterns”。 How do I add a timeout to an async operation?
预期结果:
単純なタイムアウトにはasyncio.wait_for()を使用します:await asyncio.wait_for(async_func(), timeout=5.0)。複数の操作の場合は、タイムアウト付きのasyncio.wait()を使用し、try/exceptブロックで'timeout'例外を処理します。
安全审计
安全This skill is a documentation and educational resource for async Python programming patterns. The static analyzer flagged 71 potential issues, but upon manual review, all findings are FALSE POSITIVES. The 'external_commands' detections are markdown code fences (backticks), 'network' detections are example URLs in documentation, and 'blocker' detections are benign documentation patterns. No actual security risks were found.
检测到的模式
质量评分
你能构建什么
非同期Web APIの構築
同時データベースクエリと非同期エンドポイントを使用してFastAPIで高性能なREST APIを作成
同時データフェッチ
適切なエラー処理とタイムアウトを備えたasyncio.gatherを使用して、複数のAPIリソースを同時に取得
リアルタイムアプリケーションバックエンド
チャットやライブ通知システムのためにWebSocketサーバーと非同期メッセージ処理を実装
试试这些提示
URLからデータを取得するシンプルな非同期関数をPythonで書く方法を教えてください。適切なエラー処理とタイムアウトを含んでください。
5つの異なるAPIエンドポイントからデータを同時に取得する必要があります。エラー処理のためにreturn_exceptions=Trueを使用したasyncio.gatherの使用方法を教えてください。
データベースに接続し、接続をyieldし、退出時に適切に閉じる非同期コンテキストマネージャーを作成してください。エラー処理を含んでください。
接続プーリングを備えたデータベースをクエリする本番対応の本番対応非同期関数を構築し、指数バックオフによるリトライロジックを実装し、構造化されたログを含み、キャンセルを適切に処理します。
最佳实践
- 無限のブロックを防ぐために常にタイムアウトを追加する - asyncio.wait_for()またはasyncio.timeout()を使用
- 構造化された同時実行性のためにasyncio.TaskGroup(Python 3.11+)を使用して自動クリーンアップ
- 例外を明示的に処理する - 非同期関数内でtry/exceptを使用し、例外が静かに伝播するのを防ぐ
避免
- 非同期関数内でブロックする同期呼び出しを使用しない - これによりイベントループ全体がブロックされる
- 適切なタスク追跡なしの「ファイア・アンド・フォーゲット」を避ける - キャンセルを有効にするためにTask参照を保存
- awaitとtime.sleep()のようなブロックコードを混在させない - 代わりにasyncio.sleep()を使用