concurrencyPolicy - 並行性ポリシー (concurrencyPolicy)

最大並行性や最大キュー・サイズなど、非同期実行が可能なタスクに適用される動作と制約のセット。

NameTypeDefaultDescription
idstring固有の構成 ID。
maxPolicy
  • loose
  • strict
looseタスクの実行依頼者のスレッドで実行されるタスクの最大並行性を緩く実施するのか厳密に実施するのかを示します。時刻指定されていない invokeAll メソッドの使用時、単一のタスクのみを呼び出す場合、または時刻指定されていない invokeAny メソッドの使用時には、タスクの実行依頼者のスレッドでタスクを実行できます。run-if-queue-full 属性が構成されている場合、実行メソッドおよび実行依頼メソッドの使用時にも、タスクをタスクの実行依頼者のスレッドで実行できます。これらのいずれのケースでも、この属性は、実行依頼者のスレッドでの実行が最大並行性にとってマイナスになるかどうかを決定します。
loose
最大並行性は緩く実施されます。最大並行性にマイナスになることなくタスクの実行依頼者のスレッドでタスクを実行できます。
strict
最大並行性は厳密に実施されます。タスクの実行依頼者のスレッドで実行されるタスクが、最大並行性に加算されます。このポリシーでは、既に最大並行性に達しているときにはタスクの実行依頼者のスレッドでタスクを実行することは許可されません。
maxWaitForEnqueue期間 (精度: ミリ秒)0タスクをエンキューするために待機する最大時間を指定します。この間隔内にタスクをエンキューできない場合、タスクの実行依頼は run-if-queue-full ポリシーの影響を受けます。「エンキューの最大待機」が更新された場合、更新は、その時点の後で実行依頼されたタスクにのみ適用されます。キュー位置で既に待機していたタスクの実行依頼は、以前に構成された値に従って引き続き待機します。. 正整数の後に時間単位 (時間 (h)、分 (m)、秒 (s)、またはミリ秒 (ms)) を付けて指定してください。 例えば、500 ミリ秒は 500ms と指定します。 単一エントリーに複数の値を含めることができます。 例えば、1.5 秒の場合、1s500ms とすることができます。
runIfQueueFullbooleanfalse<execute> メソッドまたは <submit> メソッドの使用時に適用されます。キューがいっぱいになり、エンキューの最大待機を超えた場合に実行依頼者のスレッドでタスクを実行するかどうかを示します。厳密に実施するよう最大ポリシーが構成されている場合、実行依頼者のスレッドで実行する機能は最大並行性制約にも左右されます。タスクが実行依頼者のスレッドで実行できない場合、タスクの実行依頼はエンキューの最大待機が経過した後で拒否されます。
maxint
Min: 1
同時に実行できるタスクの最大数を指定します。デフォルトは Integer.MAX_VALUE です。最大並行性は、タスクの進行中に更新できます。最大並行性が同時に実行されているタスクの数を下回ると、進行中のタスクはキャンセルされるのではなく、このようなタスクが完了すると更新が徐々に有効になります。
maxQueueSizeint
Min: 1
キュー内で実行を待機できるタスクの最大数を指定します。タスクは、開始されるかキャンセルされるか打ち切られると、キューから削除されます。キューが容量に達しているときに別のタスクが実行依頼された場合の動作は、「エンキューの最大待機」属性と run-if-queue-full 属性によって決定されます。短期間に特定の数のタスクを確実にキューを入れることができるようにするには、少なくともその量と同じ大きさの最大キュー・サイズを使用します。デフォルトの最大キュー・サイズは Integer.MAX_VALUE です。最大キュー・サイズは、タスクが進行中であっても実行のためにキューに入れられていても更新できます。最大キュー・サイズがキューに入れられている現在のタスクの数を下回ると、キューに入れられている余分なタスクが自動的にキャンセルされるのではなく、更新が徐々に有効になります。
startTimeout期間 (精度: ミリ秒)タスクの実行依頼とタスクの開始の間で経過できる最大時間を指定します。デフォルトでは、タスクはタイムアウトになりません。「エンキューの最大待機」と「開始までのタイムアウト」の両方が使用可能になっている場合、「開始までのタイムアウト」が「エンキューの最大待機」より大きくなるように構成してください。使用中に「開始までのタイムアウト」が更新された場合、新しい「開始までのタイムアウト」値は、更新の発生後に実行依頼されたタスクに適用されます。. 正整数の後に時間単位 (時間 (h)、分 (m)、秒 (s)、またはミリ秒 (ms)) を付けて指定してください。 例えば、500 ミリ秒は 500ms と指定します。 単一エントリーに複数の値を含めることができます。 例えば、1.5 秒の場合、1s500ms とすることができます。