Zestaw sposobów działania i ograniczeń stosowanych do zadań, które obsługują wykonywanie asynchroniczne, takich jak maksymalna współbieżność i maksymalna wielkość kolejki.
Name | Type | Default | Description |
---|---|---|---|
id | łańcuch | Unikalny identyfikator konfiguracji. | |
maxPolicy |
| loose | Wskazuje, czy luźno, czy też ściśle wymuszać maksymalną współbieżność dla zadań, które są uruchamiane w wątku użytkownika wprowadzającego zadania. Zadania mogą być uruchamiane w wątku użytkownika wprowadzającego przy użyciu nieczasowej metody invokeAll lub — w przypadku wywołania tylko pojedynczego zadania — przy użyciu nieczasowej metody invokeAny. Jeśli atrybut run-if-queue-full jest skonfigurowany, zadania mogą być także uruchamiane w wątku użytkownika wprowadzającego przy użyciu metod execute i submit. We wszystkich tych przypadkach ten atrybut określa, czy uruchamianie w wątku użytkownika wprowadzającego jest zliczane na potrzeby maksymalnej współbieżności. loose Maksymalna współbieżność jest luźno wymuszana. Dozwolone jest uruchamianie zadań w wątku użytkownika wprowadzającego bez zliczania na potrzeby maksymalnej współbieżności. strict Maksymalna współbieżność jest ściśle wymuszana. Zadania uruchamiane w wątku użytkownika wprowadzającego są zliczane na potrzeby maksymalnej współbieżności. Ta strategia nie zezwala na uruchamianie zadań w wątku użytkownika wprowadzającego, gdy osiągnięto maksymalną współbieżność. |
maxWaitForEnqueue | Okres z dokładnością do milisekundy | 0 | Określa maksymalny czas oczekiwania na wpisanie zadania do kolejki. Jeśli w tym czasie nie można wpisać zadania do kolejki, wprowadzenie zadania podlega strategii run-if-queue-full. Gdy maksymalny czas oczekiwania na wpisanie do kolejki zostanie zaktualizowany, aktualizacja ma zastosowanie tylko do zadań wprowadzonych po aktualizacji. Wprowadzone zadania, które już oczekiwały na miejsce w kolejce, będą nadal oczekiwały zgodnie z wcześniej skonfigurowaną wartością. Określ dodatnią liczbę całkowitą, po której następuje jednostka czasu, taka jak godziny (h), minuty (m), sekundy (s) lub milisekundy (ms). Na przykład określ 500 milisekund jako 500ms. W pojedynczej pozycji można zawrzeć wiele wartości. Na przykład 1s500ms oznacza 1,5 sekundy. |
runIfQueueFull | boolean | false | Ma zastosowanie, gdy używana jest metoda <execute> lub <submit>. Wskazuje, czy uruchomić zadanie w wątku użytkownika wprowadzającego, gdy kolejka jest pełna i został przekroczony maksymalny czas oczekiwania na wpisanie do kolejki. Jeśli strategia wartości maksymalnej jest skonfigurowana jako wymuszana ściśle, możliwość uruchamiania w wątku użytkownika wprowadzającego jest dodatkowo uzależniona od ograniczenia maksymalnej współbieżności. Jeśli nie można uruchomić zadania w wątku użytkownika wprowadzającego, wprowadzenie zdania jest odrzucane po upływie maksymalnego czasu oczekiwania na wpisanie do kolejki. |
max | int Min: 1 | Określa maksymalną liczbę zadań, które mogą działać równocześnie. Wartością domyślną jest Integer.MAX_VALUE. Maksymalna współbieżność może być aktualizowana, gdy zadania są w toku. Jeśli maksymalna współbieżność zostanie zmniejszona poniżej liczby współbieżnie działających zadań, aktualizacja będzie uwzględniana stopniowo wraz z zakańczaniem zadań w toku, a nie przez ich anulowanie. | |
maxQueueSize | int Min: 1 | Określa maksymalną liczbę zadań, które mogą znajdować się w kolejce zadań oczekujących na wykonanie. Operacje uruchamiania, anulowania i przerywania zadań powodują ich usunięcie z kolejki. Gdy kolejka została zapełniona i wprowadzono kolejne zadanie, sposób działania określa maksymalny czas oczekiwania na wpisanie do kolejki i atrybut run-if-queue-full. Aby zagwarantować wpisanie do kolejki konkretnej liczby zadań w krótkim przedziale czasu, należy użyć maksymalnej wielkości kolejki, która jest co najmniej tak duża, jak ta liczba. Domyślną maksymalną wielkością kolejki jest Integer.MAX_VALUE. Maksymalna wielkość kolejki może być aktualizowana, gdy zadania są w toku lub są wpisywane do kolejki do wykonania. Jeśli maksymalna wielkość kolejki zostanie zmniejszona poniżej wartości odpowiadającej bieżącej liczbie skolejkowanych zadań, aktualizacja będzie uwzględniana stopniowo, a nie przez automatyczne anulowanie nadmiernych zadań skolejkowanych. | |
startTimeout | Okres z dokładnością do milisekundy | Określa maksymalny czas, który może upłynąć od momentu wprowadzenia zadania do jego uruchomienia. Domyślnie zadania nie mają ustawionego limitu czasu. Jeśli włączono zarówno maksymalny czas oczekiwania na wpisanie do kolejki, jak i limit czasu uruchamiania, należy skonfigurować limit czasu uruchamiania na wartość większą niż maksymalny czas oczekiwania na wpisanie do kolejki. Jeśli limit czasu uruchamiania zostanie zaktualizowany w trakcie pracy, nowa wartość limitu czasu uruchamiania jest stosowana do zadań wprowadzonych po aktualizacji. Określ dodatnią liczbę całkowitą, po której następuje jednostka czasu, taka jak godziny (h), minuty (m), sekundy (s) lub milisekundy (ms). Na przykład określ 500 milisekund jako 500ms. W pojedynczej pozycji można zawrzeć wiele wartości. Na przykład 1s500ms oznacza 1,5 sekundy. |