최대 동시성, 최대 큐 크기와 같은 비동기 실행이 가능한 태스크에 적용되는 동작 및 제한조건 세트입니다.
Name | Type | Default | Description |
---|---|---|---|
id | 문자열 | 고유 구성 ID입니다. | |
maxPolicy |
| loose | 태스크 제출자의 스레드에서 실행되는 태스크의 최대 동시성을 느슨하게 실행할지 또는 엄격하게 실행할지 여부를 표시합니다. 시한이 없는 invokeAll 메소드 사용 시 또는 단일 태스크를 호출하는 경우에만 시한이 없는 invokeAny 메소드 사용 시 태스크 제출자의 스레드에서 태스크를 실행할 수 있습니다. run-if-queue-full 속성을 구성한 경우, 실행 및 제출 메소드 사용 시 태스크에서 태스크 제출자의 스레드를 실행하도록 할 수도 있습니다. 이러한 모든 경우에 이 속성은 제출자의 스레드에서의 실행이 최대 동시성에 대해 계수되는지 여부를 결정합니다. loose 최대 동시성이 느슨하게 실행되었습니다. 최대 동시성에 대해 계수하지 않고 태스크 제출자의 스레드에서 태스크를 실행할 수 있습니다. strict 최대 동시성이 엄격하게 실행되었습니다. 태스크 제출자의 스레드에서 실행되는 태스크가 최대 동시성으로 계수됩니다. 이 정책에서는 이미 최대 동시성 상태에 있는 경우 태스크 제출자의 스레드에서 태스크를 실행할 수 없습니다. |
maxWaitForEnqueue | 밀리초 정밀도를 사용하는 기간 | 0 | 태스크를 큐에 삽입할 때 대기하는 최대 지속 시간을 지정합니다. 이 간격으로 태스크를 큐에 삽입할 수 없는 경우, 태스크 제출은 run-if-queue-full 정책을 따릅니다. 최대 큐 삽입 대기를 업데이트하면 업데이트는 해당 시점 후에 제출된 태스크에만 적용됩니다. 큐 위치에서 이미 대기 중이었던 태스크 제출은 기존에 구성된 값에 따라 계속 대기합니다. 시간 단위가 뒤따르는 양수를 지정하십시오. 이는 시간(h), 분(m), 초(s) 또는 밀리초(ms)일 수 있습니다. 예를 들어, 500밀리초를 500ms로 지정하십시오. 하나의 항목에 여러 값을 포함할 수 있습니다. 예를 들어, 1s500ms는 1.5초와 동등합니다. |
runIfQueueFull | boolean | false | <execute> 또는 <submit> 메소드 사용 시 적용됩니다. 큐가 가득 차고 최대 큐 삽입 대기를 초과한 경우 제출자의 스레드에서 태스크를 실행할지 여부를 표시합니다. 최대 정책이 strict로 구성된 경우, 제출자의 스레드에서 실행할 수 있는 지는 추가로 최대 동시성 제한조건에 따릅니다. 태스크가 제출자의 스레드에서 실행될 수 없는 경우, 최대 큐 삽입 대기가 경과한 후 태스크 제출이 거부됩니다. |
max | int Min: 1 | 동시에 실행할 수 있는 최대 태스크 수를 지정합니다. 기본값은 Integer.MAX_VALUE입니다. 태스크가 진행 중인 동안에 최대 동시성이 업데이트될 수 있습니다. 최대 동시성이 동시에 실행되는 태스크 수보다 작아지면 업데이트는 진행 중인 태스크를 취소하지 않고, 태스크가 완료됨에 따라 점진적으로 적용됩니다. | |
maxQueueSize | int Min: 1 | 큐에서 실행 대기할 수 있는 최대 태스크 수를 지정합니다. 태스크가 시작되거나 취소되거나 중단되면 태스크는 큐에서 제거됩니다. 큐가 용량이 차고 다른 태스크가 제출되면 동작은 최대 큐 삽입 대기 및 run-if-queue-full 속성에 따라 결정됩니다. 특정 수의 태스크를 짧은 시간 간격 내에서 큐에 대기할 수 있도록 하려면 최대 큐 크기를 최소한 해당 수만큼으로 지정하십시오. 기본 최대 큐 크기는 Integer.MAX_VALUE입니다. 태스크가 진행 중이거나 또는 큐에서 실행 대기 중인 경우 모두 최대 큐 크기를 업데이트할 수 있습니다. 최대 큐 크기가 현재 큐 대기한 태스크 수보다 작아지면 업데이트는 큐 대기되니 초과 태스크를 자동으로 취소하지 않고 점진적으로 적용됩니다. | |
startTimeout | 밀리초 정밀도를 사용하는 기간 | 태스크 제출과 태스크 시작 사이에 허용되는 최대 시간을 지정합니다. 기본적으로 태스크에 대한 제한시간 초과는 없습니다. 최대 큐 삽입 대기와 시작 제한시간을 모두 사용하는 경우, 시작 제한시간을 최대 큐 대기보다 크게 구성하십시오. 사용 중에 시작 제한시간을 업데이트하면 새 시작 제한시간 값은 업데이트 이후에 제출된 태스크부터 적용됩니다. 시간 단위가 뒤따르는 양수를 지정하십시오. 이는 시간(h), 분(m), 초(s) 또는 밀리초(ms)일 수 있습니다. 예를 들어, 500밀리초를 500ms로 지정하십시오. 하나의 항목에 여러 값을 포함할 수 있습니다. 예를 들어, 1s500ms는 1.5초와 동등합니다. |