Repository navigation
RedisTransport
blehnen edited this page Nov 10, 2026
·
9 revisions
The redis transport uses LUA scripting to enqueue and dequeue records.
It uses StackExchange.Redis and is tested against modern Redis versions.
It supports the following features:
- Priority
- Status
- HeartBeat
- Delayed Processing
- Status Table
- Route
- Message Expiration
- History tracking (opt-in)
Unlike with the SQL Server transport, you do not need to create the queues before you use them.
[Producer]
var queueName = "example";
var connectionString = "192.168.0.212";
var queueConnection = new QueueConnection(queueName, connectionString);
using (var queueContainer = new QueueContainer<RedisQueueInit>())
{
using (var queue = queueContainer.CreateProducer<SimpleMessage>(queueConnection))
{
queue.Send(new SimpleMessage{Message = "hello world"});
}
}[Consumer]
var queueConnection = new QueueConnection(queueName, connectionString);
using (var queueContainer = new QueueContainer<RedisQueueInit>())
{
using (var queue = queueContainer.CreateConsumer(queueConnection))
{
var notifications = new ConsumerQueueNotifications(
(n) => Console.WriteLine($"Error: {n.Error}"),
(n) => Console.WriteLine($"Receive error: {n.Error}"),
(n) => Console.WriteLine($"Moved to error queue: {n.MessageId}"),
(n) => Console.WriteLine($"Poison message: {n.MessageId}"),
(n) => Console.WriteLine($"Rollback: {n.MessageId}"),
(n) => Console.WriteLine($"Completed: {n.MessageId}"));
queue.Start<SimpleMessage>(HandleMessages, notifications);
Console.WriteLine("Processing messages - press any key to stop");
Console.ReadKey((true));
}
}
private void HandleMessages(IReceivedMessage<SimpleMessage> message, IWorkerNotification notifications)
{
notifications.Log.LogDebug($"Processing Message {message.Body.Message}");
}For more consumer patterns, see ConsumerMethod and ConsumerAsync.
If history tracking is enabled, see MessageHistory for retention and query options.
See the Redis samples in the DotNetWorkQueue.Samples repository.
For any issues please use the GitHub issues