-
Notifications
You must be signed in to change notification settings - Fork 14
RedisTransport
Brian Lehnen edited this page Dec 8, 2020
·
5 revisions
The redis transport uses LUA scripting to enqueue and dequeue records.
It has been tested on the following platforms
Ubuntu / Redis 3.0.2 Windows Server 2008R2 / Redis 3.0.501
It supports the following
- Message Delay
- Message Expiration
######Configuration
Unlike the SQL server transport, the queues do not need to be created before usage.
######Usage
[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.SimpleMessage>(queueConnection))
{
queue.Send(new SimpleMessage.SimpleMessage{Message = "hello world"});
}
}
[Consumer]
var queueConnection = new QueueConnection(queueName, connectionString);
using (var queueContainer = new QueueContainer<RedisQueueInit>())
{
using (var queue = queueContainer.CreateConsumer(queueConnection))
{
queue.Start<SimpleMessage.SimpleMessage>(HandleMessages);
Console.WriteLine("Processing messages - press any key to stop");
Console.ReadKey((true));
}
}
private void HandleMessages(IReceivedMessage<SimpleMessage> m, IWorkerNotification n)
{
n.Log.Log(DotNetWorkQueue.Logging.LogLevel.Debug, () => $"Processing Message {m.Body.Message}");
}
For any issues please use the GitHub issues