shikorism / tissue

夜のライフログサービス
https://shikorism.net
MIT License
63 stars 9 forks source link

metadata.error_count が METADATA_RESOLVER_CIRCUIT_BREAK_COUNT 以上になっていると、expired であっても再取得が実行されない #1309

Open shibafu528 opened 2 weeks ago

shibafu528 commented 2 weeks ago

MetadataResolverServiceでのメタデータ解決時、expired_at で設定された時刻を過ぎると再取得判定になる。

この時、error_count が環境変数 METADATA_RESOLVER_CIRCUIT_BREAK_COUNT の値以上になっていると、サーキットブレイク処理が優先されて二度と再取得されなくなる。

expired_at によって再取得判定された場合、error_count を 0 に戻して取得すべきかもしれない。

expired_at を優先するか、サーキットブレイクのほうを優先するかはちょっと悩みどころ。
expiredならエラーが解消している可能性があるからリトライして良いとするか、エラーが出続けているのだからそちらを明示的にリセットしない限りはリトライすべきでないとするのか。