concurrencyPolicy - Стратегия параллельного выполнения (concurrencyPolicy)

Набор правил и ограничений, применяемый к задачам, которые поддерживают асинхронное выполнение (например, максимальное число параллельных задач и максимальный размер очереди).

NameTypeDefaultDescription
idstringУникальный ИД конфигурации.
maxPolicy
  • loose
  • strict
looseСтрогость применения максимального параллелизма к задачам, выполняемым в нити отправителя задач. Задачи могут выполняться в нити отправителя задач, когда используется метод invokeAll без ограничения времени или когда вызывается только одна задача (метод invokeAny без ограничения времени). Если настроен атрибут "Выполнить, если очередь полная", то задачи могут также выполняться в нити отправителя задач, когда применяются методы execute и submit. Во всех этих случаях данный атрибут определяет, учитывается ли выполнение в нити отправителя при проверке ограничения максимального параллелизма.
loose
Максимальный параллелизм применяется нестрого. Задачи, выполняемые в нити отправителя задач, не учитываются при проверке ограничения максимального параллелизма.
strict
Максимальный параллелизм применяется строго. Задачи, выполняемые в нити отправителя задач, учитываются при проверке максимального параллелизма. Эта стратегия запрещает задачам выполняться в нити отправителя задач, когда параллелизм уже максимальный.
maxWaitForEnqueueПериод (с точностью до миллисекунды)0Максимальное время ожидания помещения задачи в очередь. Если не удается поместить задачу в очередь за указанный промежуток времени, то отправкой задачи управляет стратегия "Выполнить, если очередь полная". При изменении максимального времени ожидания помещения в очередь новое значение применяется только к задачам, отправленным после изменения. К задачам, уже ожидающим помещения в очередь, применяется прежнее значение. Укажите положительное целое число, за которым следует единица времени: часы (h), минуты (m), секунды (s) или миллисекунды (ms). Например, укажите 500 миллисекунд как 500ms. Одна запись может включать несколько значений. Так, 1s500ms равно 1,5 сек.
runIfQueueFullbooleanfalseПрименяется, когда используются методы <execute> или <submit>. Указывает, должна ли задача быть выполнена в нити отправителя, когда очередь полная и истекло максимальное время ожидания постановки в очередь. Если указана строгая максимальная стратегия, то при запуске в нити отправителя задач дополнительно учитывается ограничение максимального параллелизма. Если задачу нельзя запустить в нити отправителя, то по истечении максимального времени постановки в очередь задача отклоняется.
maxint
Min: 1
Максимальное число задач, которые могут выполняться одновременно. Значение по умолчанию - Integer.MAX_VALUE. Максимальный параллелизм можно изменять во время выполнения задач. Если в результате изменения максимальный параллелизм становится меньше количества параллельно выполняемых задач, то изменение применяется постепенно, по мере завершения выполняемых задач (то есть задачи не отменяются).
maxQueueSizeint
Min: 1
Максимальное число задач, которое может быть в очереди в ожидании выполнения. При запуске, отмене или прерывании задачи удаляются из очереди. Когда очередь полная и отправляется еще одна задача, поведение определяется атрибутом максимального времени ожидания добавления в очередь и атрибутом "Выполнить, если очередь полная". Для того чтобы в очередь могло добавляться определенное число задач в короткий промежуток времени, укажите максимальный размер очереди не меньше этого количества. Максимальная длина очереди по умолчанию - Integer.MAX_VALUE. Максимальную длину очереди можно менять и когда задачи выполняются, и когда помещаются в очередь для выполнения. Если в результате изменения максимальная длина очереди становится меньше текущего количества задач в очереди, изменение применяется постепенно, то есть лишние задачи в очереди не отменяются автоматически.
startTimeoutПериод (с точностью до миллисекунды)Максимальное время между отправкой задачи и ее запуском. По умолчанию у задач нет тайм-аута. Если указано и максимальное время ожидания постановки в очередь, и тайм-аут запуска, то тайм-аут запуска должен быть больше максимального времени ожидания постановки в очередь. При изменении тайм-аута запуска, когда он уже используется, новое значение тайм-аута запуска применяется к задачам, отправленным после изменения. Укажите положительное целое число, за которым следует единица времени: часы (h), минуты (m), секунды (s) или миллисекунды (ms). Например, укажите 500 миллисекунд как 500ms. Одна запись может включать несколько значений. Так, 1s500ms равно 1,5 сек.