| name | async-programming-skill |
| description | This skill provides async/await patterns and best practices for concurrent programming |
Async Programming
Purpose
Async/await enables non-blocking concurrent operations. This skill documents patterns for safe async code.
When to Use
Use this skill when:
- Working with I/O operations
- Building concurrent systems
- Managing timeouts
- Implementing cancellation
Key Patterns
1. All I/O is Async
Never use blocking I/O:
# WRONG
with open(file) as f:
data = json.load(f)
# CORRECT
async with aiofiles.open(file) as f:
data = await f.read()
2. Timeout Protection
All async operations need timeouts:
try:
result = await asyncio.wait_for(operation(), timeout=30.0)
except asyncio.TimeoutError:
# Handle timeout
3. Error Handling
Async operations need proper error handling:
async def safe_operation():
try:
return await risky_operation()
except Exception as e:
logger.error(f"Operation failed: {e}")
raise TradingError(...) from e
See Also
- Python asyncio: https://docs.python.org/3/library/asyncio.html