concurrencyPolicy - Política de simultaneidade (concurrencyPolicy)

Um conjunto de comportamentos e restrições que são aplicados a tarefas que são capazes de execução assíncrona, como a simultaneidade máxima e o tamanho máximo da fila.

NameTypeDefaultDescription
idsequênciaUm ID de configuração exclusivo.
maxPolicy
  • loose
  • strict
looseIndica se a simultaneidade máxima deve ser imposta fortemente ou fracamente para as tarefas que executam no encadeamento do requisitante da tarefa. As tarefas podem executar no encadeamento do requisitante da tarefa ao usar o método invokeAll untimed ou, se somente uma única tarefa for chamada, o método invokeAny untimed. Se o atributo run-if-queue-full for configurado, também será possível para as tarefas executarem o encadeamento do requisitante da tarefa ao usar os métodos de execução e envio. Em todos esses casos, esse atributo determina se a execução no encadeamento do requisitante conta ou não em relação à simultaneidade máxima.
loose
Simultaneidade máxima é fracamente imposta. As tarefas têm permissão para executar no encadeamento do requisitante da tarefa sem contar em relação à simultaneidade máxima.
strict
A simultaneidade máxima é fortemente imposta. As tarefas que executam no encadeamento do requisitante da tarefa contam em relação à simultaneidade máxima. Essa política não permite que as tarefas executem no encadeamento do requisitante da tarefa quando já está na simultaneidade máxima.
maxWaitForEnqueueUm período de tempo com precisão de milissegundo0Especifica a duração máxima de tempo para esperar pelo enfileiramento de uma tarefa. Se não for possível enfileirar a tarefa dentro desse intervalo, o envio da tarefa será sujeito à política run-if-queue-full. Quando a espera máxima para enfileirar é atualizada, a atualização se aplica somente às tarefas enviadas após esse ponto. Envios de tarefa que já estavam esperando por uma posição da fila continuam a esperar pelo valor configurado anteriormente. Especifique um número inteiro positivo seguido por uma unidade de tempo, que pode ser horas (h), minutos (m), segundos (s) ou milissegundos (ms). Por exemplo, especifique 500 milissegundos como 500 ms. É possível incluir diversos valores em uma única entrada. Por exemplo, 1s500ms é equivalente a 1,5 segundos.
runIfQueueFullbooleanofalseAplica-se ao usar os métodos <execute> ou <submit>. Indica se a tarefa deve ou não ser executada no encadeamento do requisitante quando a fila está cheia e a espera máxima para enfileiramento foi excedida. Se a política máxima é configurada para estrita, a capacidade de executar no encadeamento do requisitante também é contingente na restrição de simultaneidade máxima. Se a tarefa não pode ser executada no encadeamento do requisitante, o envio de tarefa é rejeitado após a espera máxima para enfileiramento decorrer.
maxint
Min: 1
Especifica o número máximo de tarefas que podem ser executadas simultaneamente. O padrão é Integer.MAX_VALUE. A simultaneidade máxima pode ser atualizada enquanto as tarefas estão em andamento. Se a simultaneidade máxima for reduzida abaixo do número de tarefas em execução simultaneamente, a atualização entrará em vigor gradualmente conforme as tarefas em andamento forem concluídas, em vez de serem canceladas.
maxQueueSizeint
Min: 1
Especifica o número máximo de tarefas que podem estar na fila aguardando execução. Conforme as tarefas são iniciadas, canceladas ou interrompidas, elas são removidas da fila. Quando a fila está na capacidade e outra tarefa é enviada, o comportamento é determinado pela espera máxima para enfileiramento e os atributos run-if-queue-full. Para assegurar que um número específico de tarefas possa ser enfileirado dentro de um curto intervalo de tempo, use o tamanho de fila máximo que é pelo menos tão grande quanto essa quantia. O tamanho da fila máximo padrão é Integer.MAX_VALUE. O tamanho da fila máximo pode ser atualizado enquanto as tarefas estão em andamento ou enfileiradas para execução. Se o tamanho da fila máximo for reduzido abaixo do número atual de tarefas enfileiradas, a atualização entrará em vigor gradualmente em vez de automaticamente cancelar as tarefas enfileiradas em excesso.
startTimeoutUm período de tempo com precisão de milissegundoEspecifica o período de tempo máximo que pode decorrer entre o envio da tarefa e o início da tarefa. Por padrão, as tarefas não atingem o tempo limite. Se ambos, uma espera máxima para enfileiramento e um tempo limite de início estiverem ativados, configure o tempo limite de início para maior que a espera máxima para enfileiramento. Quando o tempo limite de início é atualizado enquanto em uso, o novo valor de tempo limite de início se aplica a tarefas enviadas após a atualização ocorrer. Especifique um número inteiro positivo seguido por uma unidade de tempo, que pode ser horas (h), minutos (m), segundos (s) ou milissegundos (ms). Por exemplo, especifique 500 milissegundos como 500 ms. É possível incluir diversos valores em uma única entrada. Por exemplo, 1s500ms é equivalente a 1,5 segundos.