Skip to content

RedisTransport

Brian Lehnen edited this page Feb 25, 2016 · 5 revisions

Redis Transport

The redis transport uses LUA scripting to enqueue and dequeue records.

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";
using (var queueContainer = new QueueContainer<RedisQueueInit>())
{
	using (var queue = queueContainer.CreateProducer<SimpleMessage.SimpleMessage>(queueName, connectionString))
	{
		queue.Send(new SimpleMessage.SimpleMessage{Message = "hello world"});
	}
}

[Consumer]

using (var queueContainer = new QueueContainer<RedisQueueInit>())
{
	using (var queue = queueContainer.CreateConsumer(queueName, connectionString))
    {
		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