JN.RabbitMQClient
2.2.0-beta
See the version list below for details.
dotnet add package JN.RabbitMQClient --version 2.2.0-beta
NuGet\Install-Package JN.RabbitMQClient -Version 2.2.0-beta
<PackageReference Include="JN.RabbitMQClient" Version="2.2.0-beta" />
paket add JN.RabbitMQClient --version 2.2.0-beta
#r "nuget: JN.RabbitMQClient, 2.2.0-beta"
// Install JN.RabbitMQClient as a Cake Addin #addin nuget:?package=JN.RabbitMQClient&version=2.2.0-beta&prerelease // Install JN.RabbitMQClient as a Cake Tool #tool nuget:?package=JN.RabbitMQClient&version=2.2.0-beta&prerelease
JN.RabbitMQClient
Simple implementation of RabbitMQ consumer and sender.
Install
Download the package from NuGet:
Install-Package JN.RabbitMQClient
Usage
First, you must create the RabbitMqConsumerService
and then define delegates for ReceiveMessage
, ShutdownConsumer
and ReceiveMessageError
. The service will start the required number of consumers when StartConsumers
is called.
To use a retry queue, the method StartConsumers
should be called with a RetryQueueDetails
object.
Message processing instructions
OK
- message is considered as successfully processed
RequeueMessageWithDelay
- message is removed from the queue, but sent to a retry queue for latter processing (typically with a dead letter configuration)
IgnoreMessage
- message is removed from the queue and ignored
IgnoreMessageWithRequeue
- message is rejected and sent back to the queue
Example
Example for consumer and sender services:
class Program
{
static void Main(string[] args)
{
// consumer
var consumerService = new RabbitMqConsumerService(GetBrokerConfigConsumers());
consumerService.ReceiveMessage += ReceiveMessage;
consumerService.ShutdownConsumer += ShutdownConsumer;
consumerService.ReceiveMessageError += ReceiveMessageError;
consumerService.StartConsumers("my consumer");
// sender
var senderService = new RabbitMqSenderService(GetBrokerConfigSender());
senderService.Send("my message");
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
consumerService.Dispose();
}
private static IBrokerConfigSender GetBrokerConfigSender()
{
IBrokerConfigSender configSender = new BrokerConfigSender()
{
Username = "test",
Password = "123",
Host = "localhost",
VirtualHost = "/",
RoutingKeyOrQueueName = "MyTestQueue"
};
return configSender;
}
private static IBrokerConfigConsumers GetBrokerConfigConsumers()
{
IBrokerConfigConsumers configConsumers = new BrokerConfigConsumers()
{
Username = "test",
Password = "123",
Host = "localhost",
VirtualHost = "/",
RoutingKeyOrQueueName = "MyTestQueue",
ShuffleHostList = false,
Port = 0,
TotalInstances = 3
};
return configConsumers;
}
private static async Task ReceiveMessageError(string routingKeyOrQueueName, string consumerTag, string exchange, string message, string errorMessage)
{
await Console.Out.WriteLineAsync($"Error: '{consumerTag}' | {errorMessage}");
}
private static async Task ShutdownConsumer(string consumerTag, ushort errorCode, string shutdownInitiator, string errorMessage)
{
await Console.Out.WriteLineAsync($"Shutdown '{consumerTag}' | {errorCode} | {shutdownInitiator} | {errorMessage}");
}
private static async Task<Constants.MessageProcessInstruction> ReceiveMessage(string routingKeyOrQueueName, string consumerTag, long firstErrorTimestamp, string exchange, string message)
{
await Console.Out.WriteLineAsync($"Message received from '{consumerTag}': {message}");
return Constants.MessageProcessInstruction.OK;
}
}
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. |
-
.NETStandard 2.1
- RabbitMQ.Client (>= 6.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 |
---|---|---|
2.5.1 | 131 | 2/16/2024 |
2.5.0 | 139 | 2/14/2024 |
2.4.3.1 | 462 | 11/2/2022 |
2.4.3 | 500 | 7/19/2022 |
2.4.2 | 457 | 5/23/2022 |
2.4.1 | 441 | 4/20/2022 |
2.4.0 | 611 | 2/7/2022 |
2.3.4 | 309 | 12/28/2021 |
2.3.3 | 408 | 10/14/2021 |
2.3.2 | 334 | 3/17/2021 |
2.3.0 | 529 | 9/4/2020 |
2.2.1 | 545 | 6/6/2020 |
2.2.0-beta.1 | 311 | 5/24/2020 |
2.2.0-beta | 330 | 5/15/2020 |
2.1.1 | 478 | 4/14/2020 |
2.1.0 | 502 | 12/19/2019 |
2.0.0 | 503 | 11/16/2019 |
1.0.1 | 542 | 6/30/2019 |
1.0.0 | 616 | 4/23/2019 |
Release Notes for current version:
- Update RabbitMQ.Client
- Upgrade to .NET Standard 2.1