Ejemplo n.º 1
0
        public void AtomicCommonTest()
        {
            Redial.RedialManager.RedisRedialManager manager = new Redial.RedialManager.RedisRedialManager("localhost", "", null);
            manager.Redis.FlushDb();
            RedisAtomicExecutor executor = new RedisAtomicExecutor(manager);

            Task.Factory.StartNew(() =>
            {
                executor.Execute("test", () =>
                {
                    for (int i = 0; i < 5; ++i)
                    {
                        Thread.Sleep(1000);
                    }
                });
            });
            Thread.Sleep(500);
            var result = manager.Redis.HashGetAll(RedisAtomicExecutor.GetSetKey());

            Assert.IsTrue(result.Length == 1);
            Assert.IsTrue(result[0].Key.StartsWith("test"));
            Thread.Sleep(5 * 1000);
            result = manager.Redis.HashGetAll(RedisAtomicExecutor.GetSetKey());
            Assert.IsTrue(result.Length == 0);
        }
Ejemplo n.º 2
0
        public void ClearTimeoutTest2()
        {
            var manager = new Redial.RedialManager.RedisRedialManager("localhost", null, null);

            manager.Redis.FlushDb();
            manager.Redialer = new TestRedial();
            manager.Redis.HashSet(RedisAtomicExecutor.GetSetKey(), Redial.RedialManager.RedisRedialManager.Locker, DateTime.Now.AddHours(-1).ToString("yyyy-MM-dd HH:mm"));

            RedisAtomicExecutor executor = new RedisAtomicExecutor(manager);

            Task.Factory.StartNew(() =>
            {
                executor.Execute("test1", () =>
                {
                    for (int i = 0; i < 5; ++i)
                    {
                        Thread.Sleep(1000);
                    }
                });
            });
            Task.Factory.StartNew(() =>
            {
                executor.Execute("test2", () =>
                {
                    for (int i = 0; i < 5; ++i)
                    {
                        Thread.Sleep(1000);
                    }
                });
            });
            Task.Factory.StartNew(() =>
            {
                executor.Execute("test3", () =>
                {
                    for (int i = 0; i < 5; ++i)
                    {
                        Thread.Sleep(1000);
                    }
                });
            });
            DateTime time1 = DateTime.Now;

            manager.Redial();
            DateTime time2 = DateTime.Now;

            Assert.IsTrue((time2 - time1).Seconds > 4);
        }
Ejemplo n.º 3
0
        public void RedialTest()
        {
            var manager = new Redial.RedialManager.RedisRedialManager("localhost", null, null);

            manager.Redis.FlushDb();
            manager.Redialer = new TestRedial();
            RedisAtomicExecutor executor = new RedisAtomicExecutor(manager);

            Task.Factory.StartNew(() =>
            {
                executor.Execute("test1", () =>
                {
                    for (int i = 0; i < 5; ++i)
                    {
                        Thread.Sleep(1000);
                    }
                });
            });
            Task.Factory.StartNew(() =>
            {
                executor.Execute("test2", () =>
                {
                    for (int i = 0; i < 5; ++i)
                    {
                        Thread.Sleep(1000);
                    }
                });
            });
            Task.Factory.StartNew(() =>
            {
                executor.Execute("test3", () =>
                {
                    for (int i = 0; i < 5; ++i)
                    {
                        Thread.Sleep(1000);
                    }
                });
            });
            DateTime time1 = DateTime.Now;

            manager.Redial();
            DateTime time2 = DateTime.Now;

            Assert.IsTrue((time2 - time1).Seconds > 4);
        }