Add support for v7 of the Rabbitmq client using pure async-await #128
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
High level notes:
PublisherConfirms
seems to work vastly different now. Probably for the better, but it might conflict with some of Rebus expectations. I also haven't figured out how to weave in the expected timeout between the combination of "Publisher confirms", "Mandatory" and "Express" and now those 3 all fit together. Maybe you have some opinions?IModel
(NowIChannel
) is now considered thread safe with confirmation here:IChannel
thread safety rabbitmq/rabbitmq-dotnet-client#1722 so we can get rid of the writer pool. I have tweaked some tests to ensure we actually survive reconnects even with this strategy.I would recommend releasing this as a prerelease only for now if you merge it. 7.1 of the dotnet client for rabbitmq is around the corner (Expected in a week or two). And due to the rather large amount of changes here, we probably don't want people upgrading immediately :)
Closes #124
Rebus is MIT-licensed. The code submitted in this pull request needs to carry the MIT license too. By leaving this text in, I hereby acknowledge that the code submitted in the pull request has the MIT license and can be merged with the Rebus codebase.