private static void RunPressure(RedisMessageSender redisMessageSender) { var thread = new Thread(async() => { var db = _multiplexer.GetDatabase(); for (var i = 0; i < 200; i++) { var key = _uniqPrefix + i; var value = i; var redisMessage = new StringRedisMessage(value.ToString()); var transaction = db.CreateTransaction(); #pragma warning disable 4014 transaction.StringSetAsync(key, value); #pragma warning restore 4014 redisMessageSender.Send(transaction, key, redisMessage); await transaction.ExecuteAsync(); Console.WriteLine($"sent {i}"); } }) { IsBackground = true }; thread.Start(); }
protected async Task SendMessage(string taskQueue, string messageId, TestMessage testMessage) { var multiplexer = ConnectionMultiplexer.Connect(ConnectionString); var db = multiplexer.GetDatabase(); var tr = db.CreateTransaction(); var sender = new RedisMessageSender(taskQueue); sender.Send(tr, messageId, testMessage); await tr.ExecuteAsync(); }
public static void Main(string[] args) { var connectionString = "127.0.0.1:6379,abortConnect=false"; _multiplexer = ConnectionMultiplexer.Connect(connectionString); _uniqPrefix = Guid.NewGuid().ToString("N"); _tasksQueue = _uniqPrefix + "_TaskQueue"; _processingQueuePrefix = _uniqPrefix + "_ProcessingQueue_"; var consumer1 = new RedisMessagesConsumerManager( NullLogger <RedisMessagesConsumerManager> .Instance, connectionString, new RedisMQSettings() { DeadLetterQueue = "ddd", InstancesCount = 2, LookupDelayMilliseconds = 2 * 1000, ProcessingQueuePrefix = _processingQueuePrefix, TasksQueueName = _tasksQueue }); var consumer2 = new RedisMessagesConsumerManager( NullLogger <RedisMessagesConsumerManager> .Instance, connectionString, new RedisMQSettings() { DeadLetterQueue = "ddd", InstancesCount = 2, LookupDelayMilliseconds = 2 * 1000, ProcessingQueuePrefix = _processingQueuePrefix, TasksQueueName = _tasksQueue }); Console.WriteLine("registering"); consumer2.RegisterMessageHandler(new ConsoleOuputHanlder("2", NullLogger.Instance)); consumer1.RegisterMessageHandler(new ConsoleOuputHanlder("1", NullLogger.Instance)); Console.WriteLine("starting"); consumer1.Start(); consumer2.Start(); Console.WriteLine("started"); var redisMessageSender = new RedisMessageSender(_tasksQueue); RunPressure(redisMessageSender); Console.ReadLine(); }