contextのキャンセルとそれに対応したクリーンアップ処理 Goにおいてcontextはさまざまな値を伝搬させるために使用します。その1つがキャンセル信号です。 ctx, cancel := context.WithCancel(context.Background()) defer cancel() contextを通じてキャンセル信号を送ることによって、そのcontextが伝播した関係するある種のcontextグループでキャンセルに対応した処理を行うことができます。 このcontextのキャンセルに対応した処理を、このエントリでは「クリーンアップ処理」と呼ぶことにします。 クリーンアップ処理の具体例: Graceful shutdown あるミドルウェア(プロキシサーバでもデータベースサーバでもよい)があったとして、そのミドルウェアにはメインの機能以外に「ログやメトリクスを定期的にま
![Copy/Cut/Paste/Hatena](https://cdn-ak-scissors.b.st-hatena.com/image/square/06a15c64ba0ceec233d86d71001ebb29a9dcbf5d/height=288;version=1;width=512/https%3A%2F%2Fcdn.blog.st-hatena.com%2Fimages%2Ftheme%2Fog-image-1500.png)