Shuttle.Esb.Sql.Subscription
16.0.0
Prefix Reserved
dotnet add package Shuttle.Esb.Sql.Subscription --version 16.0.0
NuGet\Install-Package Shuttle.Esb.Sql.Subscription -Version 16.0.0
<PackageReference Include="Shuttle.Esb.Sql.Subscription" Version="16.0.0" />
paket add Shuttle.Esb.Sql.Subscription --version 16.0.0
#r "nuget: Shuttle.Esb.Sql.Subscription, 16.0.0"
// Install Shuttle.Esb.Sql.Subscription as a Cake Addin #addin nuget:?package=Shuttle.Esb.Sql.Subscription&version=16.0.0 // Install Shuttle.Esb.Sql.Subscription as a Cake Tool #tool nuget:?package=Shuttle.Esb.Sql.Subscription&version=16.0.0
SQL
PM> Install-Package Shuttle.Esb.Sql.Subscription
Contains a sql-based ISubscriptionService
implementation. The subscription service caches all subscriptions but a timeout for the cache may be set. If you need to be sure that a new subscriber is picked up by a publisher the safest is to restart the relevant publisher(s).
Registration
The required components may be registered by calling:
services.AddSqlSubscription();
The SubscriptionService
that implements the ISubscriptionService
interface makes use of the SubscriptionOptions
configured with the ServiceBusOptions
to register, or ensure, any subscriptions:
services.AddServiceBus(builder => {
builder.Subscription.SubscribeType = SubscribeType.Normal; // default
builder.Subscription.ConnectionString = "Subscription"; // default
// add subscription to message types directly; else below options on builder
builder.Subscription.MessageTypes.Add(messageType);
// using type
builder.AddSubscription(typeof(Event1));
builder.AddSubscription(typeof(Event2));
// using a full type name
builder.AddSubscription(typeof(Event1).FullName);
builder.AddSubscription(typeof(Event2).FullName);
// using a generic
builder.AddSubscription<Event1>();
builder.AddSubscription<Event2>();
});
And the JSON configuration structure:
{
"Shuttle": {
"ServiceBus": {
"Subscription": {
"SubscribeType": "Normal",
"ConnectionStringName": "connection-string",
"CacheTimeout": "00:05:00",
"MessageTypes": [
"message-type-a",
"message-type-b"
]
}
}
}
}
Options
Option | Default | Description |
---|---|---|
ConnectionStringName |
Subscription | The name of the ConnectionString to use to connect to the subscription store. |
SubscribeType |
Normal | Indicates subscriptions are dealt with: <br/>- Normal is the default and will subscribe to the given message type(s) if they have not been subscribed to yet.<br/>- Ensure will check to see that the subscription exists and if not will throw an ApplicationException .<br/>- Ignore will simply ignore the subscription request. |
CacheTimeout |
00:05:00 |
How long event subscribers should be cached for before refreshing the list. |
Should the endpoint be configured as a worker no new subscriptions will be registered against the endpoint since any published events should be subscribed to only by the distributor endpoint. When using a broker all the endpoints feed off the same work queue uri and any of the endpoints could create the subscription.
When moving to a non-development environment it is recommended that you make use of the Ensure
option for the SubscribeType
.
Supported providers
Microsoft.Data.SqlClient
System.Data.SqlClient
Npgsql
/ thanks to hopla
If you'd like support for another SQL-based provider please feel free to give it a bash and send a pull request if you do go this route. You are welcome to create an issue and assistance will be provided where possible.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
- Shuttle.Core.Data (>= 17.0.0)
- Shuttle.Esb (>= 15.0.0)
- System.Runtime.Caching (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
16.0.0 | 453 | 8/5/2024 |
15.0.1 | 111 | 7/16/2024 |
14.0.1 | 367 | 5/3/2024 |
14.0.0 | 121 | 4/30/2024 |
13.2.2 | 3,807 | 12/1/2022 |
13.2.1 | 459 | 11/26/2022 |
13.2.0 | 536 | 9/16/2022 |
13.1.0 | 441 | 9/11/2022 |
13.0.0 | 443 | 9/4/2022 |
12.1.0 | 464 | 8/25/2022 |
12.0.2 | 635 | 4/9/2022 |
12.0.1 | 475 | 4/9/2022 |
12.0.0 | 474 | 3/21/2022 |
11.0.4 | 846 | 1/21/2021 |
11.0.1 | 705 | 4/16/2020 |
11.0.0 | 4,414 | 6/21/2019 |
10.1.3 | 4,210 | 11/26/2018 |
10.1.2 | 1,481 | 9/17/2018 |
10.0.1 | 1,803 | 7/7/2018 |
10.0.0 | 1,834 | 2/13/2018 |
9.0.1 | 986 | 11/12/2017 |
9.0.0 | 998 | 8/6/2017 |
8.0.2 | 1,367 | 5/7/2017 |
8.0.0 | 1,007 | 3/24/2017 |