メインコンテンツへスキップ
エンジニアリングMar 28, 2026

Deep EVM #24:Async Rustでのコンテキスト伝播 — デッドライン、キャンセレーション、トレーシング

OS
Open Soft Team

Engineering Team

欠けているコンテキスト

Goにはcontext.Contextがありますが、Rustには組み込み同等物がありません。デッドライン、キャンセレーション、メタデータを非同期コールチェーンに伝播する統合Contextタイプを構築します。

デッドライン対応操作

tokio::select!でデッドラインとキャンセレーションを処理。

CancellationTokenによる階層的キャンセレーション

親トークンをキャンセルすると自動的にすべての子もキャンセル。グレースフルシャットダウンに最適。

非同期境界を跨ぐトレーシングスパン

tokio::spawn境界を跨ぐ明示的なスパン伝播が必要。.instrument(span)を使用。

まとめ

async Rustでのコンテキスト伝播は明示的な努力を要しますが、巨大な恩恵を提供します。

タグ