SmartTender.MessageBroker.AspNetCore
2.0.14
dotnet add package SmartTender.MessageBroker.AspNetCore --version 2.0.14
NuGet\Install-Package SmartTender.MessageBroker.AspNetCore -Version 2.0.14
<PackageReference Include="SmartTender.MessageBroker.AspNetCore" Version="2.0.14" />
<PackageVersion Include="SmartTender.MessageBroker.AspNetCore" Version="2.0.14" />
<PackageReference Include="SmartTender.MessageBroker.AspNetCore" />
paket add SmartTender.MessageBroker.AspNetCore --version 2.0.14
#r "nuget: SmartTender.MessageBroker.AspNetCore, 2.0.14"
#:package SmartTender.MessageBroker.AspNetCore@2.0.14
#addin nuget:?package=SmartTender.MessageBroker.AspNetCore&version=2.0.14
#tool nuget:?package=SmartTender.MessageBroker.AspNetCore&version=2.0.14
Smarttender.MessageBroker.AspNetCore NuGet Package
Installation
To use this package, you can install it via NuGet Package Manager or directly add it to your project's dependencies in the .csproj
file.
dotnet add package Smarttender.MessageBroker.AspNetCore
Usage
Dependency Injection method
public static class SmartMessageBrokerServicesDi {
// Adding required services to the service collection public static IServiceCollection
public static IServiceCollection AddSmartMessageBroker(this IServiceCollection services, Action<BrokerConfigBase> configureApp)
// Starting consuming queues
public static IApplicationBuilder UseSmartMessageBrokerConsumers(this IApplicationBuilder app);
DI Registration Examples
using SmartMessageBroker;
using Smarttender.MessageBroker.Producer.Consumers;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
builder.Services.AddSmartMessageBroker(
cfg =>
{
cfg.ProducerConnectionString = builder.Configuration["RABBIT_CONNECTION_WRITE"]; // write connection string
cfg.ConsumerConnectionString = builder.Configuration["RABBIT_CONNECTION_READ"]; // read connection string
cfg.AddConsumer<CommercialStringMessageConsumer, StringDataMessage>(); // add consumer
cfg.AddConsumer<CommonStringMessageConsumer, StringDataMessage>();
cfg.AddConsumer<ProzorroSaleStringMessageConsumer, StringDataMessage>();
cfg.AddConsumer<ProzorroPurchaseStringMessageConsumer, StringDataMessage>();
cfg.LogTo(Console.WriteLine); // log debug messages to console
cfg.LogExceptionsTo((ex, m) => {
Console.WriteLine($"Exception: {ex.Message}, {m}"); // log exceptions to console
});
cfg.AddMessageProcessingLogger<MessageLogger>(); // add message processing logger
});
var app = builder.Build();
// Configure the HTTP request pipeline.
app.UseHttpsRedirection();
app.UseSmartMessageBrokerConsumers();
app.MapControllers();
app.Run();
Replace builder.Configuration["RABBIT_CONNECTION_WRITE"] and builder.Configuration["RABBIT_CONNECTION_READ"] with your actual RabbitMQ connection strings.
Config method usage
There is a BrokerConfigBase
class that is used to configure the message broker. It has the following properties and methods:
public abstract class BrokerConfigBase
{
public TimeSpan? SendTimeout { get; set; } // Timeout for sending messages
public TimeSpan? RecieveTimeout { get; set; } // Timeout for recieving messages
public string ProducerConnectionString { get; set; } // Connection string for producer
public string ConsumerConnectionString { get; set; } // Connection string for consumer
public string ApplicationName { get; set; } // Application name for differentiating scopes of queues
public QueueListeningMode Mode { get; set; } // OnePerApp or OnePerInstance mode for consumers
public int ConnectRetriesCount { get; set; } = 3; // Number of retries to connect to RabbitMQ
public int ConnectRetryDelayMs { get; set; } = 2000; // Delay between retries
public abstract void LogExceptionsTo(Action<Exception, string> action); // Log exceptions to action
public abstract void LogTo(Action<string> action); // Log debug messages to action
public void AddFromProfile(BrokerProfile profile); // Add configuration from profile class
public void AddFromProfiles(); // Add configuration from all profiles via reflection
public abstract void AddConsumer<mC, M>() // Add consumer
where mC : BasicAsyncConsumer<M>
where M : BasicMessage;
public abstract void AddMessageProcessingLogger<T>() // Add message processing logger that invokes on message processing
where T : class, IMessageProcessingLogger;
public enum QueueListeningMode
{
OnePerApp,
OnePerInstance
}
}
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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.AspNetCore.Http.Abstractions (>= 2.2.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 8.0.0)
- SmartTender.MessageBroker (>= 2.0.14)
- System.Text.Json (>= 8.0.4)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on SmartTender.MessageBroker.AspNetCore:
Package | Downloads |
---|---|
SmartTender.DocumentArchive.Client
Package Description |
|
SmartTender.DocumentArchive.Shared
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated | |
---|---|---|---|
2.0.14 | 5,479 | 4/16/2025 | |
2.0.13 | 192 | 4/16/2025 | |
2.0.12 | 350 | 4/14/2025 | |
2.0.11 | 215 | 4/14/2025 | |
2.0.10 | 193 | 4/14/2025 | |
2.0.9 | 195 | 4/14/2025 | |
2.0.8 | 193 | 4/14/2025 | |
2.0.7 | 196 | 4/14/2025 | |
2.0.6 | 158 | 4/11/2025 | |
2.0.5 | 1,960 | 2/3/2025 | |
2.0.4 | 116 | 2/3/2025 | |
2.0.3 | 572 | 1/28/2025 | |
2.0.2 | 241 | 1/27/2025 | |
2.0.1 | 101 | 1/27/2025 | |
1.0.33 | 115 | 1/22/2025 | |
1.0.32 | 99 | 1/17/2025 | |
1.0.31 | 458 | 1/9/2025 | |
1.0.30 | 437 | 1/6/2025 | |
1.0.29 | 113 | 1/6/2025 | |
1.0.28 | 113 | 1/6/2025 | |
1.0.27 | 330 | 1/1/2025 | |
1.0.26 | 2,666 | 11/12/2024 | |
1.0.25 | 2,827 | 9/10/2024 | |
1.0.24 | 134 | 9/10/2024 | |
1.0.23 | 197 | 9/9/2024 | |
1.0.22 | 127 | 9/9/2024 | |
1.0.21 | 852 | 8/21/2024 | |
1.0.20 | 28,636 | 8/21/2024 | |
1.0.18 | 189 | 8/14/2024 | |
1.0.17 | 350 | 8/13/2024 | |
1.0.16 | 142 | 8/7/2024 | |
1.0.15 | 156 | 8/7/2024 | |
1.0.14 | 178 | 8/2/2024 | |
1.0.13 | 124 | 8/2/2024 | |
1.0.12 | 913 | 6/19/2024 | |
1.0.11 | 3,769 | 5/27/2024 | |
1.0.10 | 1,509 | 4/29/2024 | |
1.0.9 | 162 | 4/29/2024 | |
1.0.6 | 170 | 4/25/2024 | |
1.0.5 | 167 | 4/25/2024 | |
1.0.4 | 163 | 4/24/2024 | |
1.0.3 | 159 | 4/23/2024 | |
1.0.2 | 155 | 4/23/2024 | |
1.0.1 | 202 | 4/14/2025 |