SmartTender.MessageBroker.AspNetCore
1.0.26
dotnet add package SmartTender.MessageBroker.AspNetCore --version 1.0.26
NuGet\Install-Package SmartTender.MessageBroker.AspNetCore -Version 1.0.26
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SmartTender.MessageBroker.AspNetCore" Version="1.0.26" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SmartTender.MessageBroker.AspNetCore --version 1.0.26
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: SmartTender.MessageBroker.AspNetCore, 1.0.26"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install SmartTender.MessageBroker.AspNetCore as a Cake Addin #addin nuget:?package=SmartTender.MessageBroker.AspNetCore&version=1.0.26 // Install SmartTender.MessageBroker.AspNetCore as a Cake Tool #tool nuget:?package=SmartTender.MessageBroker.AspNetCore&version=1.0.26
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
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. |
.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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.1
- Microsoft.AspNetCore.Http.Abstractions (>= 2.2.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.1)
- SmartTender.MessageBroker (>= 1.0.26)
- System.Text.Json (>= 8.0.4)
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 | |
---|---|---|---|
1.0.26 | 2,417 | 11/12/2024 | |
1.0.25 | 2,696 | 9/10/2024 | |
1.0.24 | 114 | 9/10/2024 | |
1.0.23 | 175 | 9/9/2024 | |
1.0.22 | 106 | 9/9/2024 | |
1.0.21 | 831 | 8/21/2024 | |
1.0.20 | 9,568 | 8/21/2024 | |
1.0.18 | 166 | 8/14/2024 | |
1.0.17 | 326 | 8/13/2024 | |
1.0.16 | 119 | 8/7/2024 | |
1.0.15 | 132 | 8/7/2024 | |
1.0.14 | 152 | 8/2/2024 | |
1.0.13 | 102 | 8/2/2024 | |
1.0.12 | 889 | 6/19/2024 | |
1.0.11 | 3,747 | 5/27/2024 | |
1.0.10 | 1,487 | 4/29/2024 | |
1.0.9 | 138 | 4/29/2024 | |
1.0.6 | 149 | 4/25/2024 | |
1.0.5 | 146 | 4/25/2024 | |
1.0.4 | 141 | 4/24/2024 | |
1.0.3 | 137 | 4/23/2024 | |
1.0.2 | 133 | 4/23/2024 |