https://github.com/dmarzzucco/rabbitmqworkerconsumer
RabbitMQWorkerConsumer
https://github.com/dmarzzucco/rabbitmqworkerconsumer
consoleapplication csharp net nuget-package rabbitmq-consumer
Last synced: 7 months ago
JSON representation
RabbitMQWorkerConsumer
- Host: GitHub
- URL: https://github.com/dmarzzucco/rabbitmqworkerconsumer
- Owner: DMarzzucco
- License: gpl-3.0
- Created: 2023-07-26T18:05:06.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-06-30T15:28:38.000Z (8 months ago)
- Last Synced: 2025-06-30T16:36:30.622Z (8 months ago)
- Topics: consoleapplication, csharp, net, nuget-package, rabbitmq-consumer
- Language: C#
- Homepage:
- Size: 38.9 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RabbitMQWorkerConsumer
**RabbitMQWorkerConsumer** is a lightweight library designed to simplify the creation of message consumers in .NET applications using RabbitMQ.
This package encapsulates the logic for connecting, configuring, and consuming messages from a queue, allowing the developer to focus solely on defining the message and managing it through a simple interface.
It is specifically designed to avoid code repetition and facilitate the integration of RabbitMQ into your services, following good practices of asynchrony and decoupling.
## ✅ Main Features:
- Asynchronous connection to RabbitMQ using RabbitMQ.Client.
- Automatic queue declaration.
- Message consumption with explicit acknowledgment (acknowledgement).
- Automatic deserialization of JSON messages.
- `IMessageHandler` interface for custom handling of each message type.
## 🚀 Quick Use:
You just need to:
- Define a message type (T).
- Implement `MessageHandler` to process it.
- Provide the connection options (RabbitConnectionOptions).
## Example in a Console App:
```cs
using RabbitWorkerCore;
public class ClassMessage
{
public required string Name { get; set; } = "Ivan";
}
public class NameVerificationHandler : IMessageHandler
{
public Task HandleAsync(ClassMessage message)
{
Console.WriteLine($"This is a message for {message.Name} ");
return Task.CompletedTask;
}
}
class Program
{
static async Task Main(string[] arg)
{
var options = new RabbitConnectionOptions
{
HostName = "localhost",
Port = 5672,
UserName = "user",
Password = "password",
QueueName = "test-name"
};
var handler = new NameVerificationHandler();
var worker = new WorkerConsumitor(handler, options);
await worker.StartAsync();
}
}
```
## Author:
**Dario Marzzucco**