concurrencyPolicy - Richtlinie für gemeinsamen Zugriff (concurrencyPolicy)

Eine Gruppe von Verhaltensweisen und Vorgaben, die auf Tasks angewendet werden, die asynchron ausgeführt werden können, wie z. B. die maximale Anzahl gemeinsamer Zugriffe und die maximale Warteschlangengröße.

NameTypeDefaultDescription
idstringEine eindeutige Konfigurations-ID.
maxPolicy
  • loose
  • strict
looseGibt an, ob die maximale Anzahl gleichzeitiger Zugriffe für Tasks, die im Thread des Tasksenders flexibel oder strikt umgesetzt werden soll. Tasks können im Thread des Tasksenders ausgeführt werden, wenn die nicht zeitlich festgelegte Methode invokeAll verwendet wird oder wenn nur eine einzige Task, die nicht zeitlich festgelegte Methode invokeAny aufgerufen wird. Wenn das Attribut Bei voller Warteschlange ausführen konfiguriert ist, können Tasks auch dann im Thread des Tasksenders ausgeführt werden, wenn die Methoden execute und submit verwendet werden. In allen genannten Fällen bestimmt dieses Attribut, ob die Ausführung im Thread des Senders in der maximalen Anzahl gleichzeitiger Zugriffe berücksichtigt wird oder nicht.
loose
Die maximale Anzahl gemeinsamer Zugriffe wird flexibel durchgesetzt. Tasks können im Thread des Tasksenders ausgeführt werden, ohne dass sie in der maximalen Anzahl gleichzeitiger Zugriffe berücksichtigt werden.
strict
Die maximale Anzahl gemeinsamer Zugriffe wird strikt durchgesetzt. Die im Thread des Tasksenders ausgeführten Tasks werden in der maximalen Anzahl gleichzeitiger Zugriffe berücksichtigt. Diese Richtlinie lässt die Ausführung von Tasks im Thread des Tasksenders nicht zu, wenn die maximale Anzahl gleichzeitiger Zugriffe bereits erreicht ist.
maxWaitForEnqueueZeitraum mit Genauigkeit in Millisekunden0Gibt die maximale Wartezeit für das Einreihen einer Task in die Warteschlange ein. Wenn die Task innerhalb dieses Zeitraums nicht in die Warteschlange eingereiht werden kann, richtet sich die Übergabe der Task nach der Richtlinie Bei voller Warteschlange ausführen. Wenn die maximale Wartezeit für das Einreihen in die Warteschlange aktualisiert wird, gilt die Aktualisierung nur für Tasks, die nach diesem Punkt übergeben werden. Für Taskübergaben, die bereits auf eine Position in der Warteschlange warten, gilt weiterhin der zuvor konfigurierte Wert. Geben Sie eine positive ganze Zahl, gefolgt von einer Zeiteinheit, an. Die gültigen Zeiteinheiten sind Stunden (h), Minuten (m), Sekunden (s) und Millisekunden (ms). Geben Sie 500 Millisekunden beispielsweise als 500ms an. Sie können mehrere Werte in einen einzigen Eintrag einschließen. 1s500ms entspricht beispielsweise 1,5 Sekunden.
runIfQueueFullbooleanfalseGilt für die Verwendung der Methoden <execute> und <submit>. Gibt an, ob die Task im Thread des Senders ausgeführt werden soll, wenn die Warteschlange voll ist und die maximale Wartezeit für das Einreihen in die Warteschlange überschritten wurde. Wenn die Richtlinie für maximale gemeinsame Zugriffe strikt konfiguriert ist, ist die Funktionalität zum Ausführen der Task im Thread des Senders zusätzlich abhängig von Beschränkung auf die maximale Anzahl gemeinsamer Zugriffe. Wenn die Task nicht im Thread des Senders ausgeführt werden kann, wird die Taskübergabe nach Ablauf der maximalen Wartezeit für das Einreihen in die Warteschlange zurückgewiesen.
maxint
Min: 1
Gibt die maximale Anzahl an Tasks an, die gleichzeitig ausgeführt werden können. Der Standardwert ist Integer.MAX_VALUE. Die maximale Anzahl gemeinsamer Zugriffe kann aktualisiert werden, während die Tasks in Bearbeitung sind. Wenn für die maximale Anzahl gemeinsamer Zugriffe ein Wert angegeben wird, der die Anzahl gleichzeitig ausgeführter Tasks unterschreitet, wird die Aktualisierung schrittweise wirksam, wenn die in Bearbeitung befindlichen Tasks abgeschlossen werden.
maxQueueSizeint
Min: 1
Gibt die maximale Anzahl an Tasks an, die zur Ausführung in die Warteschlange eingereiht werden können. Wenn Tasks gestartet oder abgebrochen werden, werden sie aus der Warteschlange entfernt. Wenn die Warteschlangenkapazität erschöpft ist und eine weitere Task übergeben wird, richtet sich das Verhalten nach den Einstellungen für die Attribute Maximale Wartezeit für Einreihen in die Warteschlange und Bei voller Warteschlange ausführen. Um sicherzustellen, dass eine bestimmte Anzahl von Tasks innerhalb kurzer Zeit in die Warteschlange eingereiht werden können, verwenden Sie einen Wert für die maximale Warteschlangengröße, der mindestens so hoch ist wie die gewünschte Anzahl. Der Standardwert für die maximale Warteschlangengröße ist Integer.MAX_VALUE. Die maximale Warteschlangengröße kann aktualisiert werden, während Tasks in Bearbeitung sind oder zur Ausführung in die Warteschlange eingereiht sind. Wenn die maximale Warteschlangengröße unter die aktuelle Anzahl der Tasks in der Warteschlange reduziert wird, tritt die Aktualisierung schrittweise in Kraft, anstatt die überschüssigen Tasks in der Warteschlange automatisch abzubrechen.
startTimeoutZeitraum mit Genauigkeit in MillisekundenGibt den maximalen Zeitraum zwischen Taskübergabe und Taskstart an. Standardmäßig gibt es kein Zeitlimit für die Ausführung von Tasks. Wenn die Option Maximale Wartezeit für Einreihen in die Warteschlange und die Option Startzeitlimit beide aktiviert sind, konfigurieren Sie ein Startzeitlimit, das höher ist als die maximale Wartezeit für das Einreihen in die Warteschlange. Wenn das Startzeitlimit während der Verwendung aktualisiert wird, gilt der neue Wert für das Startzeitlimit für Tasks, die nach der Aktualisierung übergeben werden. Geben Sie eine positive ganze Zahl, gefolgt von einer Zeiteinheit, an. Die gültigen Zeiteinheiten sind Stunden (h), Minuten (m), Sekunden (s) und Millisekunden (ms). Geben Sie 500 Millisekunden beispielsweise als 500ms an. Sie können mehrere Werte in einen einzigen Eintrag einschließen. 1s500ms entspricht beispielsweise 1,5 Sekunden.