[ 
https://issues.apache.org/jira/browse/CAMEL-6840?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16516620#comment-16516620
 ] 

ASF GitHub Bot commented on CAMEL-6840:
---------------------------------------

WillemJiang commented on a change in pull request #2376: CAMEL-6840 - add 
grouped throttling feature, both XML and Java DSL should be fine now.
URL: https://github.com/apache/camel/pull/2376#discussion_r196287422
 
 

 ##########
 File path: camel-core/src/main/java/org/apache/camel/processor/Throttler.java
 ##########
 @@ -235,63 +283,122 @@ protected void enqueuePermit(final ThrottlePermit 
permit, final Exchange exchang
     /**
      * Evaluates the maxRequestsPerPeriodExpression and adjusts the throttle 
rate up or down.
      */
-    protected void calculateAndSetMaxRequestsPerPeriod(final Exchange 
exchange) throws Exception {
+    protected void 
calculateAndSetMaxRequestsPerPeriod(DelayQueue<ThrottlePermit> delayQueue, 
final Exchange exchange, final Integer key) throws Exception {
         Integer newThrottle = 
maxRequestsPerPeriodExpression.evaluate(exchange, Integer.class);
 
         if (newThrottle != null && newThrottle < 0) {
             throw new IllegalStateException("The maximumRequestsPerPeriod must 
be a positive number, was: " + newThrottle);
         }
 
-        synchronized (this) {
-            if (newThrottle == null && throttleRate == 0) {
+        Object lockOnSync = null;
+        Integer currentThrottleRate = throttleRate;
+        if (correlationExpression != null) {
+            currentThrottleRate = throttleRatesMap.get(key);
+            lockOnSync = new Integer(currentThrottleRate.intValue());
 
 Review comment:
   Can we use the throttleRate as the lock here? I don't think create a new 
Integer can do the job.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> Allow Throttler EIP to specify SLA per client/correlated-group
> --------------------------------------------------------------
>
>                 Key: CAMEL-6840
>                 URL: https://issues.apache.org/jira/browse/CAMEL-6840
>             Project: Camel
>          Issue Type: New Feature
>          Components: camel-core, eip
>            Reporter: Christian Posta
>            Assignee: Önder Sezgin
>            Priority: Major
>             Fix For: 2.22.0
>
>
> Basic idea is to allow throttler to have a predicate to determine whether or 
> not to apply throttling to that exchange. 
> From this Mailing List discussion:
> http://camel.465427.n5.nabble.com/Throttling-by-client-ID-td5741032.html



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to