Example #1
0
        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();
        }
Example #2
0
        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();
        }
Example #3
0
        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();
        }