インターフェース WorkManager
- すべての既知のサブインターフェース:
DistributableWorkManager
public interface WorkManager
このインターフェースは、Work
インスタンスを実行のために送信する機能を提供するWorkManager
をモデル化します。これにより、ユーザーは Java™ を作成する必要がなくなります。作業を直接行うスレッド。さらに、これにより、スレッドリソースを効率的にプールし、スレッドの使用をより詳細に制御できます。Work
処理のさまざまな段階は次のとおりです。- 作品サブミット:
Work
インスタンスが実行のために送信されています。Work
インスタンスは、適切なエラーコードに設定されたWorkRejectedException
で受け入れられるか拒否されます。 - 受け入れた作業: 送信された
Work
インスタンスは受け入れられました。受け入れられたWork
インスタンスは、実行を開始するか、WorkRejectedException
を適切なエラーコードに設定して再度拒否することができます。開始タイムアウト期間が指定されていない限り、実行がいつ開始されるかについての保証はありません。開始タイムアウトが指定されている場合、Work
の実行は指定された期間(リアルタイムの保証ではない)内に開始する必要があり、失敗すると、エラーコード(WorkRejected.TIMED_OUT
)に設定されたWorkRejectedException
がスローされます。 - 拒否された作業:
Work
インスタンスは拒否されました。Work
インスタンスは、Work
の提出中、またはWork
インスタンスが受け入れられた後(ただし、Work インスタンスが実行を開始する前)に拒否される可能性があります。拒否の原因は、内部要因またはタイムアウトの有効期限の開始です。どちらの場合も、適切なエラーコード(理由を示す)を含むWorkRejectedException
がスローされます。 - 作業が始まった:
Work
インスタンスの実行が開始されました。これは、スレッドがその実行に割り当てられていることを意味します。ただし、これは、割り当てられたスレッドが CPU リソースで実行されるようにスケジュールされていることを保証するものではありません。実行が開始されると、割り当てられたスレッドが適切な実行コンテキスト(トランザクション、セキュリティなど)を設定し、Work.run() を呼び出します。実行コンテキストのセットアップまたは Work.run() 中にスローされた例外は、処理の完了につながることに注意してください。 - 完成した作業:
Work
の実行が完了しました。実行は例外ありまたは例外なしで完了する可能性があります。WorkManager
は、Work
処理(実行コンテキストのセットアップを含む)中にスローされた例外をキャッチし、それをWorkCompletedException
でラップします。
- バージョン:
- 1.0
- 作成者:
- Ram Jeyaraman
フィールドサマリー
フィールド 修飾子と型 フィールド 説明 static long
IMMEDIATE
タイムアウト期間を示す定数。static long
INDEFINITE
タイムアウト期間を示す定数。static long
UNKNOWN
不明な開始遅延期間またはその他の不明な値を示す定数。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 void
doWork(Work work)
Work
インスタンスを受け入れて処理します。void
doWork(Work work, long startTimeout, ExecutionContext execContext, WorkListener workListener)
Work
インスタンスを受け入れて処理します。void
scheduleWork(Work work)
Work
インスタンスを受け入れて処理します。void
scheduleWork(Work work, long startTimeout, ExecutionContext execContext, WorkListener workListener)
Work
インスタンスを受け入れて処理します。long
startWork(Work work)
Work
インスタンスを受け入れて処理します。long
startWork(Work work, long startTimeout, ExecutionContext execContext, WorkListener workListener)
Work
インスタンスを受け入れて処理します。
フィールドの詳細
IMMEDIATE
static final long IMMEDIATE
タイムアウト期間を示す定数。ゼロのタイムアウト値は、アクションがすぐに実行されることを示します。WorkManager 実装は、アクションをできるだけ早くタイムアウトする必要があります。- 関連事項:
- 定数フィールド値
INDEFINITE
static final long INDEFINITE
タイムアウト期間を示す定数。最大タイムアウト値は、時間の制約なしにアクションが任意に実行されることを示します。- 関連事項:
- 定数フィールド値
UNKNOWN
static final long UNKNOWN
不明な開始遅延期間またはその他の不明な値を示す定数。- 関連事項:
- 定数フィールド値
メソッドの詳細
doWork
void doWork(Work work) throws WorkException
Work
インスタンスを受け入れて処理します。この呼び出しは、Work
インスタンスの実行が完了するまでブロックされます。受け入れられたWork
インスタンスがいつ実行を開始するかについての保証はありません。つまり、実行を開始するための時間的制約はありません。(つまり、startTimeout = INDEFINITE)- パラメーター:
work
- 実行する作業単位。長期または短期の可能性があります。- 例外:
WorkRejectedException
-Work
インスタンスが以降の処理から拒否されたことを示します。これは、内部要因が原因で発生する可能性があります。WorkCompletedException
-Work
インスタンスが例外を伴って実行を完了したことを示します。WorkException
doWork
void doWork(Work work, long startTimeout, ExecutionContext execContext, WorkListener workListener) throws WorkException
Work
インスタンスを受け入れて処理します。この呼び出しは、Work
インスタンスの実行が完了するまでブロックされます。- パラメーター:
work
- 実行する作業単位。長期または短期の可能性があります。startTimeout
-Work
インスタンスの実行を開始する必要がある期間(ミリ秒単位)。それ以外の場合、Work
インスタンスは、WorkRejectedException
が適切なエラーコード(WorkRejectedException.TIMED_OUT
)に設定された状態で拒否されます。これはリアルタイムの保証を提供しないことに注意してください。execContext
- 送信されたWork
インスタンスを実行する必要がある実行コンテキストを含むオブジェクト。workListener
- さまざまなWork
処理イベント(作業の受け入れ、作業の拒否、作業の開始、作業の完了)が発生したときに通知されるオブジェクト。- 例外:
WorkRejectedException
-Work
インスタンスがそれ以上の処理から拒否されたことを示します。これは、内部要因または開始タイムアウトの有効期限が原因で発生する可能性があります。WorkCompletedException
-Work
インスタンスが例外を伴って実行を完了したことを示します。WorkException
startWork
long startWork(Work work) throws WorkException
処理のためにWork
インスタンスを受け入れます。この呼び出しは、Work
インスタンスが実行を開始するまでブロックされますが、完了するまでブロックされません。受け入れられたWork
インスタンスがいつ実行を開始するかについての保証はありません。つまり、実行を開始する時間の制約はありません。(つまり、startTimeout = INDEFINITE)- パラメーター:
work
- 実行する作業単位。長期または短期の可能性があります。- 戻り値:
Work
が受け入れられてから実行が開始されるまでの経過時間(ミリ秒単位)。これはリアルタイムの保証を提供しないことに注意してください。実際の開始遅延時間が不明な場合は、-1 を返すことが有効です。- 例外:
WorkRejectedException
-Work
インスタンスが以降の処理から拒否されたことを示します。これは、内部要因が原因で発生する可能性があります。WorkException
startWork
long startWork(Work work, long startTimeout, ExecutionContext execContext, WorkListener workListener) throws WorkException
処理のためにWork
インスタンスを受け入れます。この呼び出しは、Work
インスタンスが実行を開始するまでブロックされますが、完了するまでブロックされません。受け入れられたWork
インスタンスがいつ実行を開始するかについての保証はありません。つまり、実行を開始する時間の制約はありません。- パラメーター:
work
- 実行する作業単位。長期または短期の可能性があります。startTimeout
-Work
インスタンスの実行を開始する必要がある期間(ミリ秒単位)。それ以外の場合、Work
インスタンスは、WorkRejectedException
が適切なエラーコード(WorkRejectedException.TIMED_OUT
)に設定された状態で拒否されます。これはリアルタイムの保証を提供しないことに注意してください。execContext
- 送信されたWork
インスタンスを実行する必要がある実行コンテキストを含むオブジェクト。workListener
- さまざまなWork
処理イベント(作業の受け入れ、作業の拒否、作業の開始、作業の完了)が発生したときに通知されるオブジェクト。- 戻り値:
Work
が受け入れられてから実行が開始されるまでの経過時間(ミリ秒単位)。これはリアルタイムの保証を提供しないことに注意してください。実際の開始遅延時間が不明な場合は、-1 を返すことが有効です。- 例外:
WorkRejectedException
-Work
インスタンスがそれ以上の処理から拒否されたことを示します。これは、内部要因または開始タイムアウトの有効期限が原因で発生する可能性があります。WorkException
scheduleWork
void scheduleWork(Work work) throws WorkException
処理のためにWork
インスタンスを受け入れます。この呼び出しはブロックされず、Work
インスタンスの処理が受け入れられるとすぐに戻ります。送信されたWork
インスタンスがいつ実行を開始するかについての保証はありません。つまり、実行を開始する時間の制約はありません。(つまり、startTimeout = INDEFINITE)。- パラメーター:
work
- 実行する作業単位。長期または短期の可能性があります。- 例外:
WorkRejectedException
-Work
インスタンスが以降の処理から拒否されたことを示します。これは、内部要因が原因で発生する可能性があります。WorkException
scheduleWork
void scheduleWork(Work work, long startTimeout, ExecutionContext execContext, WorkListener workListener) throws WorkException
処理のためにWork
インスタンスを受け入れます。この呼び出しはブロックされず、Work
インスタンスの処理が受け入れられるとすぐに戻ります。- パラメーター:
work
- 実行する作業単位。長期または短期の可能性があります。startTimeout
-Work
インスタンスの実行を開始する必要がある期間(ミリ秒単位)。それ以外の場合、Work
インスタンスは、WorkRejectedException
が適切なエラーコード(WorkRejectedException.TIMED_OUT
)に設定された状態で拒否されます。これはリアルタイムの保証を提供しないことに注意してください。execContext
- 送信されたWork
インスタンスを実行する必要がある実行コンテキストを含むオブジェクト。workListener
- さまざまなWork
処理イベント(作業の受け入れ、作業の拒否、作業の開始、作業の完了)が発生したときに通知されるオブジェクト。- 例外:
WorkRejectedException
-Work
インスタンスが以降の処理から拒否されたことを示します。これは、内部要因が原因で発生する可能性があります。WorkException