Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Specifying a Delay Through Exchange Argument #115

Open
IdanWo opened this issue Sep 7, 2018 · 1 comment
Open

Specifying a Delay Through Exchange Argument #115

IdanWo opened this issue Sep 7, 2018 · 1 comment

Comments

@IdanWo
Copy link

IdanWo commented Sep 7, 2018

Motivation:

Since the x-delay is a message header attribute, delay can only be specified per message and through publisher's code.

There should be an alternative way for specifying the desired delay as for these goals:

  1. Seamlessly support running systems: In case of current running system, adding delayed messages requires change in the existing publishers code. We prefer not to make any modifications to the existing publishers.
  2. Policy-like behavior: support for specifying the same default delay to all queues, current and future ones, for all messages.

Implementation:

The requirement can be achieved through:

  1. Exchange argument - the optimal approach.
  2. Plugin configuration setting - less optimal, but might be more easy as for current internal API parts.

Point to consider:

There should be a clear priority which according to the delay is specified.
In my opinion, this is the right priority:

  1. If exists in the message header argument, the delay is specified by this argument.
  2. If exists in the exchange argument, the delay is specified by the this argument.
  3. If no relevant argument is found, then the message will not be delayed.
@nachitox
Copy link

nachitox commented Jun 8, 2021

I'm asking without any knowledge about how the plugins work.

We use rabbitmq-message-deduplication which also uses a custom exchange type, so we couldn't use both. We can't have unique delayed events which would be great.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants