|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjp.terasoluna.fw.batch.standard.StandardWorkQueue
public class StandardWorkQueue
WorkQueue インタフェースの標準実装クラス。
この実装では、JDKの BLockingQueue によってキューイングを実現
する。
キューへの要素追加、キューからの要素取得の際には、ブロックし続けるのでは
なく、タイムアウト時間だけ試行したあとで JobStatus をチェックし
QueueStoppedException 例外をスローする。
キューへの要素追加、キューからの要素取得の際に、スレッドがインタラプトされた
際にもQueueStoppedException 例外をスローする。
| フィールドの概要 | |
|---|---|
static WorkUnit |
END_MARK
キューの終端を示すマーク。 |
private java.util.List<java.util.concurrent.Future<?>> |
futureResultList
キューの要素の処理結果のリスト。 |
private JobStatus |
jobStatus
ジョブステータス。 |
private java.util.concurrent.BlockingQueue<WorkUnit> |
queue
キュー。 |
private long |
queueCheckTimeout
キューをチェックする際のタイムアウト。 |
| コンストラクタの概要 | |
|---|---|
StandardWorkQueue(int queueLength,
JobStatus jobStatus)
コンストラクタ。 |
|
| メソッドの概要 | |
|---|---|
void |
addFutureJobResult(java.util.concurrent.Future<?> futureResult)
ワーカの処理結果に非同期でアクセスするためのフューチャーを追加する。 |
private void |
checkJobStatus()
ジョブステータスをチェックする。 |
void |
close()
キューを終了する。 |
void |
put(WorkUnit element)
処理対象データをキューに追加する。 |
void |
setQueueCheckTimeout(long timeout)
タイムアウト設定する。 |
WorkUnit |
take()
キューの要素を取得する。 |
void |
waitForAllWorkers()
キューの要素を処理するすべてのワーカーの終了を待ち合わせる。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
|---|
private long queueCheckTimeout
private java.util.concurrent.BlockingQueue<WorkUnit> queue
private JobStatus jobStatus
private java.util.List<java.util.concurrent.Future<?>> futureResultList
public static final WorkUnit END_MARK
| コンストラクタの詳細 |
|---|
public StandardWorkQueue(int queueLength,
JobStatus jobStatus)
queueLength - キューの長さjobStatus - ジョブステータス| メソッドの詳細 |
|---|
public void put(WorkUnit element)
WorkQueue 内の putelement - キューに追加する要素private void checkJobStatus()
中断終了が要求されているときは、ワーカ側で適切な中断処理を行う 必要があるため、何もしない。
強制終了が要求されているときには、JobStatus
をシャットダウンに更新した後で、QueueingException
例外をスローする。
さらに、ジョブステータスが JobStatus.STATE.STARTED、
あるいは JobStatus.STATE.RESTARTED
のどちらでもないときには、QueueingException
例外をスローする。
public void close()
キューの終端であるインスタンスをキューに追加する。
WorkQueue 内の closepublic WorkUnit take()
WorkQueue 内の takepublic void waitForAllWorkers()
WorkQueue 内の waitForAllWorkerspublic void addFutureJobResult(java.util.concurrent.Future<?> futureResult)
futureResult - ワーカの処理結果に非同期でアクセスするためのフューチ
ャーpublic void setQueueCheckTimeout(long timeout)
timeout - タイムアウト(ミリ秒)
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||