Skip to content

RedisTransport

Brian Lehnen edited this page Dec 8, 2020 · 5 revisions

Redis Transport

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}");
}
Clone this wiki locally