Mini Jackpot Service に関するサービス層・業務処理を担当します。

9Fields
1Constructors
8Methods
183Lines
Package
com.example.rankingplugin
Source
MiniJackpotService.java
Kind
class
Roles
DB / 永続化非同期 / スケジューラ初期化 / ブートストラップサービス層
このクラスにも章立て解説を追加しています。 自動抽出の一覧だけでなく、下の『重点クラスの詳細解説』で読む順番・内部サブシステム・変更時の注意点まで追えます。 全クラス章立てガイドを見る

クラス説明

クラス直前の Javadoc は見つかりませんでした。ソースとメソッド構成から責務を補完しています。

責務と見どころ

重点クラスの詳細解説

Mini Jackpot Service に関するサービス層・業務処理を担当します。(root) パッケージの 小〜中規模クラスで、スケジューラを確認する起点です。全面展開版では、他の重点クラスと同じ章立てで読めるように補強しています。

最初に追う読む順番

  1. MiniJackpotService
    依存オブジェクトと初期状態を束ね、このクラスが担当するランタイムの前提を固めます。
  2. ensureTables
    不足テーブル・設定・内部状態を先に揃える入口です。変更を入れる前提条件の確認地点になります。
  3. startFlushTask
    定期処理や公開 API の起動地点で、外部から見える挙動がここから立ち上がります。
  4. refreshCache
    DB への問い合わせまたは更新処理を担当します。
  5. addToPool
    プールに追加(メインスレッドではDBを触らない)
  6. getPoolAmount
    現在のプール量を取得(DBアクセスなし)
  7. flushPending
    DB への問い合わせまたは更新処理を担当します。
  8. resetPool
    既存互換: ジャックポットプールをリセット。

内部サブシステムの地図

非同期処理と定期実行

メインスレッド境界とバックグラウンド処理が交差します。重い処理やタイミング起因の不具合を追うときの要所です。

主なメソッド

代表フロー詳解

変更時の注意点

外部接点

主な永続化テーブル

SQL 文字列から抽出できた主要テーブルです。スキーマ変更時の確認用です。

IFmini_jackpot_poolpool

フィールド

VisibilityTypeName役割
privateStringTABLE_NAMETABLE_NAME の状態を保持します。
privateDataSourcedsDB 接続元を保持します。
privateStringserverIdserverId の状態を保持します。
privateLongAdderpendingAddpendingAdd の状態を保持します。
privateAtomicLongcachedPoolキャッシュまたは直近計算結果を保持します。
privateAtomicBooleanflushRunningflushRunning の状態を保持します。
privateAtomicBooleanresetPendingresetPending の状態を保持します。
privateDbCircuitBreakerbreakerbreaker の状態を保持します。
privateBukkitTaskflushTask非同期処理やスケジューラ制御に使うハンドルです。

コンストラクタ / 初期化

Signature説明主要呼び出し
public MiniJackpotService(DataSource ds, String serverId)依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。isBlank → ensureTables → refreshCache → startFlushTask

メソッド索引

NameVisibilityKind説明
MiniJackpotServicepublicコンストラクタ依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
ensureTablesprivateメソッド必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。
startFlushTaskprivateメソッド初期化と各種登録を行い、機能を有効化します。
refreshCacheprivateメソッドDB への問い合わせまたは更新処理を担当します。
addToPoolpublicメソッドプールに追加(メインスレッドではDBを触らない)
getPoolAmountpublicメソッド現在のプール量を取得(DBアクセスなし)
flushPendingprivateメソッドDB への問い合わせまたは更新処理を担当します。
resetPoolpublicメソッド既存互換: ジャックポットプールをリセット。

メソッド詳細

MiniJackpotService

コンストラクタpublic
public MiniJackpotService(DataSource ds, String serverId)

依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。

引数

throws

なし

主要な呼び出し順

isBlankensureTablesrefreshCachestartFlushTask

ensureTables

メソッドprivate
private void ensureTables()

必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。

引数

throws

なし

主要な呼び出し順

getConnectioncreateStatementexecuteUpdategetMetaDatagetTablesnextprepareStatementexecuteQuery

startFlushTask

メソッドprivate
private void startFlushTask()

初期化と各種登録を行い、機能を有効化します。

引数

throws

なし

主要な呼び出し順

findgetSchedulerrunTaskTimerAsynchronously

refreshCache

メソッドprivate
private void refreshCache()

DB への問い合わせまたは更新処理を担当します。

引数

throws

なし

主要な呼び出し順

isOfflinegetConnectionprepareStatementsetStringexecuteQuerynextgetLongonSuccess

addToPool

メソッドpublic
public void addToPool(long amount)

プールに追加(メインスレッドではDBを触らない)

引数

throws

なし

主要な呼び出し順

addAndGet

getPoolAmount

メソッドpublic
public long getPoolAmount()

現在のプール量を取得(DBアクセスなし)

引数

throws

なし

主要な呼び出し順

目立つ内部呼び出しは抽出されませんでした。

flushPending

メソッドprivate
private void flushPending()

DB への問い合わせまたは更新処理を担当します。

引数

throws

なし

主要な呼び出し順

isOfflinecompareAndSetgetConnectionprepareStatementsetStringexecuteUpdateonSuccesssumThenReset

resetPool

メソッドpublic
public void resetPool()

既存互換: ジャックポットプールをリセット。

引数

throws

なし

主要な呼び出し順

sumThenResetfindgetSchedulerrunTaskAsynchronously

代表的な処理フロー

  1. 初期化フロー
    MiniJackpotService → isBlank → ensureTables → refreshCache → startFlushTask
    依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
  2. ensureTables フロー
    ensureTables → getConnection → createStatement → executeUpdate → getMetaData → getTables
    必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。
  3. startFlushTask フロー
    startFlushTask → find → getScheduler → runTaskTimerAsynchronously
    初期化と各種登録を行い、機能を有効化します。
  4. flushPending フロー
    flushPending → isOffline → compareAndSet → getConnection → prepareStatement → setString
    DB への問い合わせまたは更新処理を担当します。
  5. refreshCache フロー
    refreshCache → isOffline → getConnection → prepareStatement → setString → executeQuery
    DB への問い合わせまたは更新処理を担当します。
  6. resetPool フロー
    resetPool → sumThenReset → find → getScheduler → runTaskAsynchronously
    既存互換: ジャックポットプールをリセット。

外部との接点

Web ルート

このクラス内に目立つ Web ルート定義は見つかりませんでした。

SQL / テーブル

IFmini_jackpot_poolpool

関連クラス

補足