Conjunto de comportamientos y restricciones que se aplican a las tareas con capacidad de ejecución asíncrona, como tamaño de cola máxima y concurrencia máxima.
Name | Type | Default | Description |
---|---|---|---|
id | string | Un ID de configuración exclusivo. | |
maxPolicy |
| loose | Indica si se va a aplicar de forma relajada o estricta la concurrencia máxima para las tareas que se ejecutan en la hebra del remitente de la tarea. Las tareas se pueden ejecutar en la hebra del remitente de la tarea si se utiliza el método sin tiempo invokeAll o, si sólo se invoca una tarea, el método sin tiempo invokeAny. Si se configura el atributo run-if-queue-full, también es posible ejecutar las tareas en la hebra del remitente de la tarea si se utilizan los métodos execute y submit. En todos estos casos, este atributo determina si la ejecución en la hebra del remitente se tiene en cuenta para la concurrencia máxima. loose La concurrencia máxima se aplica de forma relajada. Las tareas se pueden ejecutar en la hebra del remitente de la tarea sin que se tenga en cuenta para la concurrencia máxima. strict La concurrencia máxima se aplica de forma estricta. Las tareas que se ejecutan en la hebra del remitente de la tarea se tienen en cuenta para la concurrencia máxima. Esta política no permite ejecutar en la hebra del remitente de la tarea cuando ya se ha alcanzado la concurrencia máxima. |
maxWaitForEnqueue | Un período de tiempo con precisión de milisegundos | 0 | Especifica la duración máxima de tiempo que una tarea debe esperar para ponerse en cola. Si la tarea no se puede poner en cola en este intervalo, el envío de la tarea está sujeto a la política run-if-queue-full. Cuando se actualiza el valor de espera máxima para ponerse en cola, la actualización se aplica solo a las tareas enviadas a partir de ese punto. Los envíos de tareas que ya estaban esperando una posición en la cola continúan esperando según el valor configurado previamente. Especifica un entero positivo seguido de una unidad de tiempo, que puede ser horas (h), minutos (m), segundos (s) o milisegundos (ms). Por ejemplo, especifique 500 milisegundos como 500ms. Puede incluir varios valores en una sola entrada. Por ejemplo, 1s500ms es equivalente a 1,5 segundos. |
runIfQueueFull | boolean | false | Se aplica cuando se utilizan los métodos <execute> o <submit>. Indica si se debe ejecutar la tarea en la hebra del remitente cuando la cola está llena y se ha superado la espera máxima para ponerse en cola. Si la política máxima se ha configurado en estricta, la capacidad de ejecutar en la hebra del remitente depende adicionalmente de la restricción de concurrencia máxima. Si la tarea no se puede ejecutar en la hebra del remitente, el envío de tarea se rechaza después de que haya transcurrido el tiempo de espera máximo para la puesta en cola. |
max | int Min: 1 | Especifica el número máximo de tareas que se pueden ejecutar de forma simultánea. El valor predeterminado es Integer.MAX_VALUE. La concurrencia máxima se puede actualizar mientras las tareas están en curso. Si la concurrencia máxima se reduce a un número por debajo del número de tareas que se ejecutan de forma simultánea, la actualización entra en vigor de manera gradual, una vez que se completan las tareas en curso, en lugar de cancelarlas. | |
maxQueueSize | int Min: 1 | Especifica el número máximo de tareas que se pueden poner en cola en espera de ejecución. A medida que las tareas se inician, cancelan o terminan anormalmente, se van eliminando de la cola. Cuando la cola ha alcanzado su capacidad y se envía otra tarea, el comportamiento está determinado por el valor máximo de espera de los atributos enqueue y run-if-queue-full. Para garantizar que un número específico de tareas puedan ponerse en cola en un intervalo breve de tiempo, utilice el tamaño máximo de cola que sea como mínimo tan alto como esa cantidad. El tamaño máximo predeterminado de cola es Integer.MAX_VALUE. El tamaño máximo de cola se puede actualizar mientras las tareas están en curso o en cola en espera de ser ejecutadas. Si el tamaño máximo de cola se reduce a un número por debajo del número actual de tareas en cola, la actualización entra en vigor de manera gradual, en lugar de cancelar automáticamente las tareas que exceden del límite en la cola. | |
startTimeout | Un período de tiempo con precisión de milisegundos | Especifica el tiempo máximo que puede transcurrir entre el envío de la tarea y el inicio de la tarea. De forma predeterminada, las tareas no agotan el tiempo de espera. Si se ha habilitado un tiempo de espera máximo para poner en cola y un tiempo de espera de inicio, configure el tiempo de espera de inicio con un valor mayor que el de espera máxima para poner en cola. Si el tiempo de espera de inicio se actualiza mientras está funcionando, el nuevo valor de tiempo de espera de inicio se aplica a las tareas enviadas después de la actualización. Especifica un entero positivo seguido de una unidad de tiempo, que puede ser horas (h), minutos (m), segundos (s) o milisegundos (ms). Por ejemplo, especifique 500 milisegundos como 500ms. Puede incluir varios valores en una sola entrada. Por ejemplo, 1s500ms es equivalente a 1,5 segundos. |