Releases: by-pinja/Protacon.RxMq
v.5.0.0-alpha
Update nuget packages and switch target framework to net8.0.
v4.0.0: Setting Expansions And Deprecations
What's Changed
deprecate legacy projects
Legacy projects were exclusively for generating assemblies for .net framework 4.5. Latest framework supported is now 4.8 and 4.5 support is removed.
Added timestamp support to received messages
User can configure via appsettings.json
whether an arrival timestamp is added to every received message. By default timestamp is not added but needs to be configured separately either via settings file or AzureBusTopicSettings.cs
.
{
"Logging": {
"LogLevel": {
"Default": "Information"
}
},
"MessagingSettings": {
...
"AddArrival": true
}
}
Arrival time is of type nullable long and the value is unix time in milliseconds. It appears in the data payload as a field rxmqarrival
.
[JsonProperty("rxmqarrival")]
public long? RxMqArrival { get; set; }
Add support for Topic settings PrefetchCount and ReceiveMode
Allow consumer to configure either generally or topic by topic bases PrefetchCount
and ReceiveMode
for Topic Subscription Client. PrefetchCount
allows consumer to control how many messages are received from topic at once. ReceiveMode
controls how does the subscription client behave in regards to receiving messages. There are two modes currently supported:
- PeekLock means Service Bus will wait for confirmation from client that messages has been received
ReceiveAndDelete
means Service Bus will delete message as soon as it has departed the topic regardless of client status
Defaults to 0 and PeekLock.
Default settings example:
{
"Logging": {
"LogLevel": {
"Default": "Information"
}
},
"MessagingSettings": {
...
"DefaultPrefetchCount": 0,
"DefaultReceiveMode": "PeekLock"
}
}
To determine PrefetchCount and ReceiveMode on topic basis, implement IConfigurableTopicItem
interface.
Full Changelog: 3.1.0...4.0.0
Correlation ID support for Legacy
- Add support for CorrelationId in topic messages for Legacy implementation
- Note that Legacy does not use ILogger implementation for logging
What's Changed
Full Changelog: 3.0.0...3.1.0
Update Microsoft.Azure.ServiceBus to latest
Update Microsoft.Azure.ServiceBus to latest.
Correlation ID support
- Add support for CorrelationId in topic messages
- Add more context to logged messages
What's Changed
Full Changelog: 2.0.0...2.1.0
Add net472 and net48 support and update dependencies
This release removes net461 support which is a breaking change. Adds net472 and net48 targeting support.
- Drop net461 support from non-Legacy
- Add net48 support for non-Legacy
- Add net472 and net48 support for Legacy
- Add net472 to net48 for non-Legacy
- Update deps based on targeting framework. When applicant, updates:
- Newtonsoft.Json 10.0.3 -> 13.0.1
- System.Reactive 3.1.1 -> 5.0.0
- Shared dep updates as following:
- FluentAssertions 4.19.4 -> 5.1.2
- Microsoft.NET.Test.Sdk 15.3.0-preview -> 15.6.0
- Microsoft.NETFramework.ReferenceAssemblies 1.0.0 -> 1.0.2
Lifecycle Topic Publisher binding enhancement
Fixes
- Concurrent calls to same topic publisher when binding is created, where one thread could pontentially get stuck to lifecycle-long loop where addition to
ConcurrentDictionary
cannot be made as it already exists in it
Entity already exists support for topic subscription (Legacy)
Adds
- Add support for Topic subscription for Legacy project to manage existing entities
- When active subscriber is changes e.g. on network failure, support internally the subscriber change, and manage possible exsisting subscription from the previous client having these network or other problems
- One scenario could be two subscribers where A is active and B passive. A has network or server failure, and traffic is moved to B. B is now active and A passive. B will subscribe to same messages as A was. This can cause EntityAlreadyExsists -type exceptions on certain cases. Handle these internally.
- Now client can optionally implement Delete Subscription -logic when creating message subscriber - but is no longer necessary
SendAsync thread safety and logging configuration
SendAsync thread safety and logging configuration plus bug fix
SendAsync thread safety and logging configuration
SendAsync thread safety (topic)
Logging configuration (exclude by queue or topic name)