SharedResourceオブジェクト
コンポーネント情報 | |
---|---|
version | 8.0.26 |
since | 8.0.25 |
リソースを一意に表現し、ロックの獲得、開放、共有を目的とした共有リソース機能を提供します。
この機能は、業務におけるリソースを一意に表現し、そのリソースに対してロックを行う事を目的とした仕組みです。
ロックの獲得は NewLock APIを利用しています。
NewLock APIと違い、この機能はテナント単位でロックを獲得します。従ってテナントを跨るような仕組みでは利用できません。
また、カスタムタグ <imart type="sharedResource" />と連携します。
カスタムタグを利用することにより画面上でそのリソースを参照しているユーザを共有できる他、ロックの獲得状態を画面上において共有できるようになります。
また、このAPIを通じてカスタムタグを利用ている画面に対してリソースの更新を通知することが可能です。
クライアントへの通知の仕組みはWebSocketまたはCometを用いて行われます、そのため送達保証はされません。
業務アプリケーション画面内において楽観的に業務リソースの状態を共有する目的で使用して下さい。
この機能は、業務におけるリソースを一意に表現し、そのリソースに対してロックを行う事を目的とした仕組みです。
ロックの獲得は NewLock APIを利用しています。
NewLock APIと違い、この機能はテナント単位でロックを獲得します。従ってテナントを跨るような仕組みでは利用できません。
また、カスタムタグ <imart type="sharedResource" />と連携します。
カスタムタグを利用することにより画面上でそのリソースを参照しているユーザを共有できる他、ロックの獲得状態を画面上において共有できるようになります。
また、このAPIを通じてカスタムタグを利用ている画面に対してリソースの更新を通知することが可能です。
クライアントへの通知の仕組みはWebSocketまたはCometを用いて行われます、そのため送達保証はされません。
業務アプリケーション画面内において楽観的に業務リソースの状態を共有する目的で使用して下さい。
コンストラクタの概要
SharedResource (String application , Object businessKeys ) コンストラクタ |
メソッドの概要
返却値の型 | メソッド名 |
---|---|
String | getApplication () アプリケーションを取得します。 |
Object | getBusinessKeys () 業務キーを取得します。 |
String | getKey () このSharedResourceを一意に表すキーを返却します。 |
void | notifyUpdate () クライアントに対してリソースの更新が行われたことを通知します。 |
Boolean | runAndNotify (Function function , Number timeout ) ロックを獲得した場合、引数 function に受け渡された処理を実行します。 |
Boolean | run (Function function , Number timeout ) ロックを獲得した場合、引数 function に受け渡された処理を実行します。 |
Boolean | tryLockAndNotify (Number timeout ) ロックを獲得します。 |
Boolean | tryLock (Number timeout ) ロックを獲得します。 |
void | unlockAndNotify () ロックの解放を行います。 |
void | unlock () ロックの解放を行います。 |
コンストラクタの詳細
SharedResource (String application , Object businessKeys )
コンストラクタ
SharedResourceオブジェクトを生成します。 アプリケーションは任意の文字列を指定します。(例: "my_app") ビジネスキーはリソースを一意に表すキー/バリュー形式の値を指定してくだだい。(例: {appId: "123", appVersion: "3"})
パラメータ
|
メソッドの詳細
String getApplication ()
アプリケーションを取得します。
返却値
|
Object getBusinessKeys ()
業務キーを取得します。
返却値
|
String getKey ()
このSharedResourceを一意に表すキーを返却します。
返却値
|
void notifyUpdate ()
クライアントに対してリソースの更新が行われたことを通知します。
返却値
|
Boolean runAndNotify (Function function , Number timeout )
ロックを獲得した場合、引数 function に受け渡された処理を実行します。
実行完了後にはロックを開放します。 ロックを獲得/開放した場合、クライアントに通知を行います。 この振る舞いは、クライアントに対してリソースの更新通知は行いません、必要に応じて runnableの処理中において SharedResource#notifyUpdate()を呼び出しリソースの更新をクライアントに通知する必要があります。
パラメータ
返却値
|
Boolean run (Function function , Number timeout )
ロックを獲得した場合、引数 function に受け渡された処理を実行します。
実行完了後にはロックを開放します。
パラメータ
返却値
|
Boolean tryLockAndNotify (Number timeout )
ロックを獲得します。
ロックを獲得した場合、クライアント側に対してロック獲得を通知します。 timeout に 0 を指定した場合、ロックフラグが解除されるまで待機します。
パラメータ
返却値
|
Boolean tryLock (Number timeout )
ロックを獲得します。
timeout に 0 を指定した場合、ロックフラグが解除されるまで待機します。TimeUnit) を利用します。
パラメータ
返却値
|
void unlockAndNotify ()
ロックの解放を行います。
このインスタンス以外で同一のリソースに対して獲得したロックに対しても開放を行います。 開放した際に、クライアントに対して通知が行われます。
返却値
|
void unlock ()
ロックの解放を行います。
このインスタンス以外で同一のリソースに対して獲得したロックに対しても開放を行います。
返却値
|