Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 互換編


21.4.3 WorkManager,デーモンWorkおよび非デーモンWorkのライフサイクル

ここでは,WorkManager,デーモンWorkおよび非デーモンWorkのライフサイクルについて説明します。

〈この項の構成〉

(1) WorkManagerのライフサイクル

WorkManagerは,アプリケーション開始時に作成されます。アプリケーション中でルックアップされると,アプリケーション開始時に作成されたWorkManagerが返されます。複数回ルックアップされても,アプリケーション開始時に作成された同じWorkManagerが呼び出されます。WorkManagerは,アプリケーションの停止時に破棄されます。

また,WorkManagerは永続化されません。そのため,JavaVMが終了した場合,作成されたWorkManagerおよびスケジュールされた非同期処理は破棄されます。

WorkManagerのライフサイクルを次の図に示します。

図21‒7 WorkManagerのライフサイクル

[図データ]

(2) デーモンWorkのライフサイクル

デーモンWorkは,scheduleメソッドの実行時に作成されます。また,WorkManagerの停止時(WorkManagerに対応するアプリケーションの停止時)に破棄されます。WorkManagerの停止時には,WorkManagerはデーモンWorkのreleaseメソッドを実行したあと,すべてのデーモンWorkが終了するまで待機します。

デーモンWorkのライフサイクルを次の図に示します。

図21‒8 デーモンWorkのライフサイクル

[図データ]

(3) 非デーモンWorkのライフサイクル

非デーモンWorkは,scheduleメソッドの実行時に作成されます。また,runメソッドの処理が完了すると終了します。非デーモンWorkの実行中の場合またはキューで実行待ちの場合にWorkManagerを停止したとき(対応するアプリケーションを停止したとき),非デーモンWorkが停止するまで待機してから終了します。

非デーモンWorkのライフサイクルを次の図に示します。

図21‒9 非デーモンWorkのライフサイクル

[図データ]