You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/01/23 10:41:27 UTC

[11/13] james-project git commit: MAILBOX-376 Do not lose events "forever" when publishing retries fails

MAILBOX-376 Do not lose events "forever" when publishing retries fails

Keeping them in dead-letter feels better...


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/37e662cb
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/37e662cb
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/37e662cb

Branch: refs/heads/master
Commit: 37e662cb41250ffc32b2e5bba1ca2c16068a908a
Parents: c70c987
Author: Benoit Tellier <bt...@linagora.com>
Authored: Wed Jan 23 12:03:49 2019 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Jan 23 17:40:01 2019 +0700

----------------------------------------------------------------------
 .../org/apache/james/mailbox/events/GroupConsumerRetry.java     | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/37e662cb/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/GroupConsumerRetry.java
----------------------------------------------------------------------
diff --git a/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/GroupConsumerRetry.java b/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/GroupConsumerRetry.java
index 12469b9..9171436 100644
--- a/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/GroupConsumerRetry.java
+++ b/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/GroupConsumerRetry.java
@@ -115,8 +115,9 @@ class GroupConsumerRetry {
             eventAsByte));
 
         return sender.send(retryMessage)
-            .doOnError(throwable -> createStructuredLogger(event).log(logger -> logger.error("Exception happens when publishing event to retry exchange," +
-                    "this event will be lost forever", throwable)));
+            .doOnError(throwable -> createStructuredLogger(event)
+                .log(logger -> logger.error("Exception happens when publishing event to retry exchange, this event will be stored in deadLetter", throwable)))
+            .onErrorResume(e -> eventDeadLetters.store(group, event));
     }
 
     private StructuredLogger createStructuredLogger(Event event) {


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org