Bondx.RabbitMQ.Extentions
1.0.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Bondx.RabbitMQ.Extentions --version 1.0.0
NuGet\Install-Package Bondx.RabbitMQ.Extentions -Version 1.0.0
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="Bondx.RabbitMQ.Extentions" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Bondx.RabbitMQ.Extentions --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Bondx.RabbitMQ.Extentions, 1.0.0"
#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 Bondx.RabbitMQ.Extentions as a Cake Addin #addin nuget:?package=Bondx.RabbitMQ.Extentions&version=1.0.0 // Install Bondx.RabbitMQ.Extentions as a Cake Tool #tool nuget:?package=Bondx.RabbitMQ.Extentions&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
RabbitMq Extention
Bondx.RabbitMQ.Extentions is a extention methods, for make communication easy.
- Easy to publish object to queue
- Easy to subscribe them
- Easy to make exchanges, queues and bindings itself
New Features!
- Add PushAndReply to producer. Now you can send message to queue and after consumer subscribe it, it returns message to your queue.
- Fix async consumers problem
You can also:
- Configure Queue to have dlx echange and route, priprity and retries
- push events with custom retry
Installation
Install package from nuget.
$ Install-Package Bondx.RabbitMQ.Extentions -Version 1.0.0
Add injection to startup.cs file if you net to publish events..
$ services.AddProducer(configuration, "mq");
where mq is section name
"mq": {
"Host": "localhost",
"Port": 5672,
"UserName": "guest",
"Password": "guest",
"VirtualHost":"/test"
}
Now inject IProducer to the constructor and use it.
example of rise syncronus event:
producer.PushDynamic<T>(msg);
producer.Push<BxMessage>(exchange, routingkey, msg);
...
example of rise asyncronus event:
await producer.PushDynamicAsync<T>(msg);
await producer.PushAsync<BxMessage>(exchange, routingkey, msg);
...
example of register subscriber
var _consumers = ConsumerFactory.Build(ConsumerType.Classic, mqConfiguration, ServiceProvider, logger);
_consumers.Subscribe<BxMessage>((msg, provider) => {
Console.WriteLine(JsonConvert.SerializeObject(msg));
return Task.CompletedTask;
});
example of ConfigurationObject, for ConsumerType.Classic
ConsumerConfiguration cf = new ConsumerConfiguration {
Configuration = new MqConfiguration {
Host = "localhost",
Port = 5672,
UserName = "guest",
Password = "guest"
},
Queue = new QueueParams {
Name = "CUSTOMERS",
Routing = ["1.1.1", "1.2.1"],
QueueArgs = new QueueArg[] { new QueueArg
{
Key = QueueArgKey.DeadLetterExchage,
Value = "bx.exchange.fanout.dl"
},
new QueueArg
{
Key = QueueArgKey.MaxPriority,
Value = 5
}
},
"DLXQueue": {
"Name": "retry_queue_name.dlx",
"Routing": "1.1.1",
"Delay": 30000
}
},
Exchange = new ExchangeParams() {
Name = "bx.exchange.direct",
Type = ExchangeType.Direct
},
ExchangeDLQ = new ExchangeParams() {
Name = "bx.exchange.fanout.dl",
Type = ExchangeType.Fanout
}
};
example of ConfigurationObject, for ConsumerType.Dynamic
ConsumerConfiguration cf = new ConsumerConfiguration {
Configuration = new MqConfiguration {
Host = "localhost",
Port = 5672,
UserName = "guest",
Password = "guest"
}
};
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 | 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Microsoft.Extensions.Configuration (>= 2.2.0)
- Microsoft.Extensions.Configuration.Binder (>= 2.2.0)
- Microsoft.Extensions.DependencyInjection (>= 2.2.0)
- Microsoft.Extensions.Logging.Abstractions (>= 2.2.0)
- Microsoft.Extensions.Options (>= 2.2.0)
- Newtonsoft.Json (>= 12.0.3)
- Polly (>= 7.2.1)
- RabbitMQ.Client (>= 6.2.1)
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.2 | 1,285 | 1/16/2021 |
1.0.1 | 528 | 11/11/2020 |
1.0.0 | 731 | 10/7/2020 |
0.1.6 | 420 | 10/5/2020 |
0.1.5 | 603 | 4/13/2020 |
0.1.4 | 568 | 3/21/2020 |
0.1.3 | 488 | 3/18/2020 |
0.1.2 | 484 | 3/17/2020 |
0.1.1 | 451 | 3/16/2020 |
0.1.0 | 495 | 3/14/2020 |
0.0.6 | 491 | 3/13/2020 |
0.0.5 | 526 | 3/4/2020 |
0.0.4 | 500 | 3/4/2020 |
0.0.3 | 501 | 3/3/2020 |
0.0.2 | 489 | 3/3/2020 |
0.0.1 | 468 | 3/2/2020 |
Add DLX queue for message retry interval, implement multi routing key binding, set number of consumers inside configuration