起動・前提準備
初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
主なメソッド
主なフィールド
なし
DBが落ちた/重い時に、一定時間アクセス自体を止める(サーキットブレーカー)。
com.example.rankingplugin.dbdb/DbCircuitBreaker.javaclassDBが落ちた/重い時に、一定時間アクセス自体を止める(サーキットブレーカー)。 - フラッシュ処理等の非同期DBアクセスで使用する想定 - メインスレッドでの getConnection 待ちを発生させないことが目的
DBが落ちた/重い時に、一定時間アクセス自体を止める(サーキットブレーカー)。db パッケージの 小規模クラスで、運用中の主ループを確認する起点です。全面展開版では、他の重点クラスと同じ章立てで読めるように補強しています。
DbCircuitBreakeronSuccessonFailureisOfflinecanAttemptNowofflineRemainingMs初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
イベント受理、定期監視、判定、進行更新など、実際に挙動を生む中心ロジックです。
このクラスが前提状態を揃え、外部から利用可能な形まで立ち上がる流れです。新規依存の追加や起動失敗の調査はまずここから追います。
イベント受理、判定、状態更新、通知までの主経路です。体感不具合や想定外の分岐はこの流れのどこで止まるかを見ると切り分けやすいです。
結果を保持し、必要なら永続化し、最後に掃除まで行う出口です。画面更新だけ合って保存が壊れるケースや残骸が残るケースの確認に向きます。
| Signature | 説明 | 主要呼び出し |
|---|---|---|
public DbCircuitBreaker(long baseCooldownMs, long maxCooldownMs, long logMinIntervalMs) | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 | max |
| Name | Visibility | Kind | 説明 |
|---|---|---|---|
| DbCircuitBreaker | public | コンストラクタ | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 |
| isOffline | public | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| canAttemptNow | public | メソッド | 既存コード互換: DBアクセスを試みてよいか。 |
| offlineRemainingMs | public | メソッド | offlineRemainingMs の主要処理を担当します。 |
| onSuccess | public | メソッド | onSuccess の主要処理を担当します。 |
| onFailure | public | メソッド | onFailure の主要処理を担当します。 |
public DbCircuitBreaker(long baseCooldownMs, long maxCooldownMs, long logMinIntervalMs)依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
long baseCooldownMslong maxCooldownMslong logMinIntervalMsなし
public boolean isOffline()条件判定を行い、後続処理の分岐に使える真偽値を返します。
なし
public boolean canAttemptNow()既存コード互換: DBアクセスを試みてよいか。
なし
public long offlineRemainingMs()offlineRemainingMs の主要処理を担当します。
なし
public void onSuccess()onSuccess の主要処理を担当します。
なし
public void onFailure(Throwable t, Logger logger, String tag)onFailure の主要処理を担当します。
Throwable tLogger loggerString tagなし
DbCircuitBreaker → maxonFailure → min → incrementAndGet → max → currentTimeMillis → getClassofflineRemainingMs → currentTimeMillis → maxcanAttemptNow → isOfflineisOffline → currentTimeMillis