protected void TestConcurrentIterationWithDrainer(SubscriptionAction act)
        {
            IDictionary <string, object> args = new Dictionary <string, object>
            {
                { "x-message-ttl", 5000 }
            };
            string       q   = Model.QueueDeclare("", false, true, false, args);
            Subscription sub = new Subscription(Model, q, false);

            PreparedQueue(q);

            List <Thread> ts = new List <Thread>();

            for (int i = 0; i < 50; i++)
            {
                SubscriptionDrainer drainer = new SubscriptionDrainer(sub, act);
                Thread t = new Thread(drainer.Drain);
                ts.Add(t);
                t.Start();
            }

            foreach (Thread t in ts)
            {
                t.Join();
            }
        }
Exemplo n.º 2
0
        protected void TestSequentialIterationWithDrainer(Action <Subscription> action)
        {
            IDictionary <string, object> args = new Dictionary <string, object>
            {
                { "x-message-ttl", 5000 }
            };
            string queueDeclare = Model.QueueDeclare("", false, true, false, args);
            var    subscription = new Subscription(Model, queueDeclare, false);

            PreparedQueue(queueDeclare);

            var drainer = new SubscriptionDrainer(subscription, action);

            drainer.Drain();
        }
        protected void TestConcurrentIterationWithDrainer(Action<Subscription> action)
        {
            IDictionary<string, object> args = new Dictionary<string, object>
            {
                {Headers.XMessageTTL, 5000}
            };
            string queueDeclare = Model.QueueDeclare("", false, true, false, args);
            var subscription = new Subscription(Model, queueDeclare, false);

            PreparedQueue(queueDeclare);

            var threads = new List<Thread>();
            for (int i = 0; i < 50; i++)
            {
                var drainer = new SubscriptionDrainer(subscription, action);
                var thread = new Thread(drainer.Drain);
                threads.Add(thread);
                thread.Start();
            }

            threads.ForEach(x => x.Join(TimeSpan.FromSeconds(20)));
        }
Exemplo n.º 4
0
        protected void TestConcurrentIterationWithDrainer(Action <Subscription> action)
        {
            IDictionary <string, object> args = new Dictionary <string, object>
            {
                { "x-message-ttl", 5000 }
            };
            string queueDeclare = Model.QueueDeclare("", false, true, false, args);
            var    subscription = new Subscription(Model, queueDeclare, false);

            PreparedQueue(queueDeclare);

            var threads = new List <Thread>();

            for (int i = 0; i < 50; i++)
            {
                var drainer = new SubscriptionDrainer(subscription, action);
                var thread  = new Thread(drainer.Drain);
                threads.Add(thread);
                thread.Start();
            }

            threads.ForEach(x => x.Join(TimeSpan.FromSeconds(20)));
        }
        protected void TestConcurrentIterationWithDrainer(SubscriptionAction act)
        {
            IDictionary<string, object> args = new Dictionary<string, object>
            {
                {"x-message-ttl", 5000}
            };
            string q = Model.QueueDeclare("", false, true, false, args);
            Subscription sub = new Subscription(Model, q, false);

            PreparedQueue(q);

            List<Thread> ts = new List<Thread>();
            for (int i = 0; i < 50; i++)
            {
                SubscriptionDrainer drainer = new SubscriptionDrainer(sub, act);
                Thread t = new Thread(drainer.Drain);
                ts.Add(t);
                t.Start();
            }

            foreach(Thread t in ts)
            {
                t.Join();
            }
        }
        protected void TestSequentialIterationWithDrainer(Action<Subscription> action)
        {
            IDictionary<string, object> args = new Dictionary<string, object>
            {
                {Headers.XMessageTTL, 5000}
            };
            string queueDeclare = Model.QueueDeclare("", false, true, false, args);
            var subscription = new Subscription(Model, queueDeclare, false);

            PreparedQueue(queueDeclare);

            var drainer = new SubscriptionDrainer(subscription, action);
            drainer.Drain();
        }