Azure / amqpnetlite

AMQP 1.0 .NET Library
Apache License 2.0
401 stars 143 forks source link

Expose option to cancel inflight message #466

Closed Havret closed 3 years ago

Havret commented 3 years ago

This exposes the option to cancel inflight messages. Currently, if you use Send overload that accepts OutcomeCallback as an argument, there is no option to cancel inflight messages. This may be really useful when you have custom timeout logic, for instance, build around CancellationToken as we have in .NET Client for ActiveMQ Artemis https://github.com/Havret/dotnet-activemq-artemis-client/blob/master/src/ActiveMQ.Artemis.Client/ProducerBase.cs#L36-L47.

I'm not entirely sure that Cancel is the best name, but original OnTimeout doesn't seem right for public API. If you have any suggestions I can rename it.

@xinchen10 Any chance that we could have this released in short order. This is a huge blocker for our implementation of NMS AMQP, as we cannot use producer flow control properly without this.

xinchen10 commented 3 years ago

@josesimoes Hi was there any changes in the nf packages? The amqp nf solution build started failing with the following error on appveyor.

CSC : error CS1617: Invalid option '9.0' for /langversion. Use '/langversion:?' to list supported values. [C:\projects\amqpnetlite\nanoFramework\Amqp.nanoFramework\Amqp.nanoFramework.nfproj]
CSC : error CS1617: Invalid option '9.0' for /langversion. Use '/langversion:?' to list supported values. [C:\projects\amqpnetlite\nanoFramework\Amqp.Micro.nanoFramework\Amqp.Micro.nanoFramework.nfproj]
josesimoes commented 3 years ago

Hey @xinchen10 !

We've added support for C#9.0 recently and that happens in the project system.

I have a pending PR to submit here along with some libraries updates. I'll try to do that asap.

Apologies for the inconvenience...

xinchen10 commented 3 years ago

@Havret Hi release 2.4.3 has the fix.

Havret commented 3 years ago

@xinchen10 Awesome, huge thanks!