パッケージ org.iplass.mtp.async
インタフェース AsyncTaskManager
- すべてのスーパーインタフェース:
Manager
非同期実行を管理するManager。
非同期処理は、ローカルスレッド実行指定されない限り、一旦永続Storeに保存される。
そのため、ローカルスレッド実行でないtaskはSerializbleを実装する必要がある。
また、taskが実行結果を返す場合はその実行結果もSerializbleを実装する必要がある。
-
メソッドの概要
修飾子とタイプメソッド説明<V> AsyncTaskFuture
<V> デフォルトの実行オプション設定にて指定のtaskを非同期実行する。<V> AsyncTaskFuture
<V> execute
(AsyncTaskOption option, Callable<V> task) 指定のtask, optionで表現される非同期タスクを実行する。<V> Future
<V> executeOnThread
(Callable<V> task) ローカルスレッドでタスクを非同期実行する。void
forceDelete
(long taskId, String queueName) AsyncTaskInfoを強制削除する。<V> AsyncTaskFuture
<V> 指定のtaskId,queueNameで特定される非同期タスクの実行結果を問い合わせる。loadAsyncTaskInfo
(long taskId, String queueName) AsyncTaskInfoの詳細を取得する。永続Storeに保存されている(ローカルスレッド実行でない)非同期タスクの情報を取得する。
-
メソッドの詳細
-
executeOnThread
ローカルスレッドでタスクを非同期実行する。
ローカルスレッド実行では以下の制約がある。
- トランザクション管理対象外:呼び出し元がロールバックしても、非同期処理が継続
getResult(long, String)
による問い合わせ不可- リトライ、タイムアウトなどの制御なし
- パラメータ:
task
- 非同期実行する処理- 戻り値:
- 実行結果を表すFuture
-
execute
デフォルトの実行オプション設定にて指定のtaskを非同期実行する。 デフォルトの設定はAsyncTaskOption
を参照のこと。- パラメータ:
task
- 非同期実行する処理- 戻り値:
- 実行結果を表すAsyncTaskFuture
-
execute
指定のtask, optionで表現される非同期タスクを実行する。
ローカルスレッド実行指定(executeOnThread(Callable)
or optionのキュー名に無効な参照です
AsyncTaskManager#LOCAL_THREAD_QUEUE_NAME
また、ロカールスレッド実行ではない場合、 このメソッドの結果として返される、AsyncTaskFuture
のインスタンスの扱いは注意が必要。 ロカールスレッド実行に比較して、キューを介したタスクの処理には比較的処理時間がかかるため、 また、無効な参照です
StartMode.AFTER_COMMIT
AsyncTaskFuture.get()
の呼び出しはタイムアウトする可能性が高い。 別のタイミングで、getResult(long, String)
を呼び出し、結果を取得すること。- パラメータ:
option
- 非同期タスク実行オプションtask
- 非同期実行する処理- 戻り値:
- 実行結果を表すAsyncTaskFuture
-
getResult
指定のtaskId,queueNameで特定される非同期タスクの実行結果を問い合わせる。- パラメータ:
taskId
-queueName
- キュー名、nullの場合はデフォルトキュー指定されたとみなす- 戻り値:
- 実行結果を表すAsyncTaskFuture
-
loadAsyncTaskInfo
AsyncTaskInfoの詳細を取得する。 task、およびresultもロードする。- パラメータ:
taskId
-queueName
- キュー名、nullの場合はデフォルトキュー指定されたとみなす- 戻り値:
-
searchAsyncTaskInfo
永続Storeに保存されている(ローカルスレッド実行でない)非同期タスクの情報を取得する。 このメソッドを利用して返却されるAsyncTaskInfoには、taskおよび、resultは含まれない(メモリ負荷を考慮し)。 これらを取得する場合は、別途loadAsyncTaskInfo(long, String)
を利用する。- パラメータ:
cond
-- 戻り値:
-
forceDelete
AsyncTaskInfoを強制削除する。- パラメータ:
taskId
-queueName
- キュー名、nullの場合はデフォルトキュー指定されたとみなす
-