|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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 int |
queueCheckTimeout
キューをチェックする際のタイムアウト。 |
コンストラクタの概要 | |
---|---|
StandardWorkQueue(int queueLength,
JobStatus jobStatus)
コンストラクタ。 |
メソッドの概要 | |
---|---|
void |
addFutureJobResult(java.util.concurrent.Future<?> futureResult)
ワーカの処理結果に非同期でアクセスするためのフューチャーを追加する。 |
private void |
checkJobStatus()
ジョブステータスをチェックする。 |
void |
close()
キューを終了する。 |
void |
put(WorkUnit element)
処理対象データをキューに追加する。 |
void |
setQueueCheckTimeout(int timeout)
タイムアウト設定する。 |
WorkUnit |
take()
キューの要素を取得する。 |
void |
waitForAllWorkers()
キューの要素を処理するすべてのワーカーの終了を待ち合わせる。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
private int 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
内の put
element
- キューに追加する要素private void checkJobStatus()
シャットダウンが要求されているときには、JobStatus
をシャットダウンに更新した後で、
QueueingStoppedException
例外をスローする。
さらに、ジョブステータスが JobStatus.STATE.STARTED
、
あるいは JobStatus.STATE.RESTARTED
のどちらでもないときには、QueueingStoppedException
例外をスローする。
public void close()
キューの終端であるインスタンスをキューに追加する。
WorkQueue
内の close
public WorkUnit take()
WorkQueue
内の take
public void waitForAllWorkers()
WorkQueue
内の waitForAllWorkers
public void addFutureJobResult(java.util.concurrent.Future<?> futureResult)
futureResult
- ワーカの処理結果に非同期でアクセスするためのフューチ
ャーpublic void setQueueCheckTimeout(int timeout)
timeout
- タイムアウト(ミリ秒)
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |