File tree Expand file tree Collapse file tree 1 file changed +1
-20
lines changed
joylive-core/joylive-governance-api/src/main/java/com/jd/live/agent/governance/invoke/ratelimit/tokenbucket Expand file tree Collapse file tree 1 file changed +1
-20
lines changed Original file line number Diff line number Diff line change 1616import com .jd .live .agent .governance .policy .service .limit .RateLimitPolicy ;
1717import com .jd .live .agent .governance .policy .service .limit .SlidingWindow ;
1818
19- import static java .lang .Math .min ;
2019
2120/**
2221 * SmoothWarmupLimiter
@@ -83,27 +82,9 @@ protected double getMaxStoredPermits() {
8382 return thresholdPermits + 2.0 * warmupMicros / (permitIntervalMicros + coldIntervalMicros );
8483 }
8584
86- @ Override
87- protected long waitForStorePermits (double storedPermits , double targetPermits ) {
88- double availablePermitsAboveThreshold = storedPermits - thresholdPermits ;
89- long micros = 0 ;
90- // measuring the integral on the right part of the function (the climbing line)
91- if (availablePermitsAboveThreshold > 0.0 ) {
92- double permitsAboveThresholdToTake = min (availablePermitsAboveThreshold , targetPermits );
93- double length =
94- permitsToTime (availablePermitsAboveThreshold )
95- + permitsToTime (availablePermitsAboveThreshold - permitsAboveThresholdToTake );
96- micros = (long ) (permitsAboveThresholdToTake * length / 2.0 );
97- targetPermits -= permitsAboveThresholdToTake ;
98- }
99- // measuring the integral on the left part of the function (the horizontal line)
100- micros += (long ) (permitIntervalMicros * targetPermits );
101- return micros ;
102- }
103-
10485 @ Override
10586 protected double coolDownIntervalMicros () {
106- return warmupMicros / maxStoredPermits ;
87+ return storedPermits > thresholdPermits ? coldIntervalMicros : permitIntervalMicros ;
10788 }
10889
10990 private double permitsToTime (double permits ) {
You can’t perform that action at this time.
0 commit comments