コード例 #1
0
        public void SchedulerLoadPerformaceTest()
        {
            RedisScheduler scheduler = new RedisScheduler("localhost", "");
            ISpider spider = new DefaultSpider("test", new Site());
            var start = DateTime.Now;
            for (int i = 0; i < 40000; i++)
            {
                scheduler.Push(new Request("http://www.a.com/" + i, 1, null));
            }

            var end = DateTime.Now;
            double seconds = (end - start).TotalSeconds;
            scheduler.Clear();

            var start1 = DateTime.Now;
            HashSet<Request> list = new HashSet<Request>();
            for (int i = 0; i < 40000; i++)
            {
                list.Add(new Request("http://www.a.com/" + i, 1, null));
            }
            scheduler.Load(list);
            var end1 = DateTime.Now;
            double seconds1 = (end1 - start1).TotalSeconds;
            Assert.IsTrue(seconds1 < seconds);
        }
コード例 #2
0
        public void SchedulerLoadTest()
        {
            QueueDuplicateRemovedScheduler scheduler = new QueueDuplicateRemovedScheduler();
            ISpider spider = new DefaultSpider("test", new Site());
            scheduler.Push(new Request("http://www.a.com/", 1, null));
            scheduler.Push(new Request("http://www.b.com/", 1, null));
            scheduler.Push(new Request("http://www.c.com/", 1, null));
            scheduler.Push(new Request("http://www.d.com/", 1, null));

            RedisScheduler redisScheduler = new RedisScheduler("localhost", "");
            redisScheduler.Load(scheduler.ToList());

            Assert.AreEqual("http://www.d.com/", redisScheduler.Poll().Url.ToString());
            Assert.AreEqual("http://www.c.com/", redisScheduler.Poll().Url.ToString());
            Assert.AreEqual("http://www.b.com/", redisScheduler.Poll().Url.ToString());
            Assert.AreEqual("http://www.a.com/", redisScheduler.Poll().Url.ToString());
        }