Skip to content

Give CorrelatingMessageHandler a way to retry messages after a time-out expires. [INT-1068] #5075

@spring-operator

Description

@spring-operator

Jeroen van Erp opened INT-1068 and commented

Currently the CorrelatingMessageHandler only seems to have a way to force messages to pass the Barrier if the time-out has expired, or discard them. It would be nice to have a way to retry them after a given amount of time. In our usecase we have messages coming in, which are delayed because another message with the same correlation id is being processed. These messages are then kept back to await the other message to finish the processing chain. In this way we prevent messages from going through our system in the wrong order. However it may take a long time before another message with the same correlation id arrives at our processor, so all held back messages stay in the message store a long time and could/should have been processed earlier.

In essence we're using the CorrelatingMessageHandler as a Barrier or Latch, where a message with a specific correlation id can pass, unless another message with the same correlation id is in the chain.

Instead of having only an option of forcing or discarding messages, we should also have a way of gracefully retrying and delaying the messages if they couldn't be retried yet.


Affects: 2.0 M3

Issue Links:

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions