Class LimitedPriorityLevelConfiguration

  • All Implemented Interfaces:
    com.marcnuri.yakc.model.Model

    public class LimitedPriorityLevelConfiguration
    extends java.lang.Object
    implements com.marcnuri.yakc.model.Model
    LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues:

    * How are requests for this priority level limited?

    * What should be done with requests that exceed the limit?

    • Constructor Detail

      • LimitedPriorityLevelConfiguration

        public LimitedPriorityLevelConfiguration​(java.lang.Number assuredConcurrencyShares,
                                                 LimitResponse limitResponse)
      • LimitedPriorityLevelConfiguration

        public LimitedPriorityLevelConfiguration()
    • Method Detail

      • getAssuredConcurrencyShares

        public java.lang.Number getAssuredConcurrencyShares()
        `assuredConcurrencyShares` (ACS) configures the execution limit, which is a limit on the number of requests of this priority level that may be exeucting at a given time. ACS must be a positive number. The server's concurrency limit (SCL) is divided among the concurrency-controlled priority levels in proportion to their assured concurrency shares. This produces the assured concurrency value (ACV) --- the number of requests that may be executing at a time --- for each such priority level:


        ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) )


        bigger numbers of ACS mean more reserved concurrent requests (at the expense of every other PL). This field has a default value of 30.

      • setAssuredConcurrencyShares

        public void setAssuredConcurrencyShares​(java.lang.Number assuredConcurrencyShares)
        `assuredConcurrencyShares` (ACS) configures the execution limit, which is a limit on the number of requests of this priority level that may be exeucting at a given time. ACS must be a positive number. The server's concurrency limit (SCL) is divided among the concurrency-controlled priority levels in proportion to their assured concurrency shares. This produces the assured concurrency value (ACV) --- the number of requests that may be executing at a time --- for each such priority level:


        ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) )


        bigger numbers of ACS mean more reserved concurrent requests (at the expense of every other PL). This field has a default value of 30.

      • setLimitResponse

        public void setLimitResponse​(LimitResponse limitResponse)
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • canEqual

        protected boolean canEqual​(java.lang.Object other)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object