This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit deb3d6d76a7c7e853b61df7720e27a9e19830a69
Author: Benoit Tellier <[email protected]>
AuthorDate: Sat May 8 14:49:59 2021 +0700

    [REFACTORING] GroupRegistration was doing acks on the parallel pool
    
    Detected thanks to https://github.com/reactor/BlockHound
    
    ACKs are blocking (as we send a message over the
    network to RabbitMQ). Doing that on the parallel pool
    is bad as it "steals" threads dedicated to non
    blocking tasks and slows the entire application down.
---
 .../src/main/java/org/apache/james/events/GroupRegistration.java        | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/event-bus/distributed/src/main/java/org/apache/james/events/GroupRegistration.java
 
b/event-bus/distributed/src/main/java/org/apache/james/events/GroupRegistration.java
index a33638b..4a83f81 100644
--- 
a/event-bus/distributed/src/main/java/org/apache/james/events/GroupRegistration.java
+++ 
b/event-bus/distributed/src/main/java/org/apache/james/events/GroupRegistration.java
@@ -145,7 +145,7 @@ class GroupRegistration implements Registration {
             .flatMap(event -> delayGenerator.delayIfHaveTo(currentRetryCount)
                 .flatMap(any -> runListener(event))
                 .onErrorResume(throwable -> retryHandler.handleRetry(event, 
currentRetryCount, throwable))
-                .then(Mono.<Void>fromRunnable(acknowledgableDelivery::ack)))
+                
.then(Mono.<Void>fromRunnable(acknowledgableDelivery::ack).subscribeOn(Schedulers.elastic())))
             .onErrorResume(e -> {
                 LOGGER.error("Unable to process delivery for group {}", group, 
e);
                 return Mono.fromRunnable(() -> 
acknowledgableDelivery.nack(!REQUEUE));

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to