예제 #1
0
        static int SingleBehance()
        {
            BehanceWrapper viewer = new BehanceWrapper();

            while (queue.Count > 0)
            {
                ProxyDTO proxy = proxy_wrapper.dequeProxy();
                if (proxy == null)
                {
                    Console.WriteLine("Proxy not found. Aborting...");
                    return(-1);
                }

                Console.WriteLine("proxy found - {0}", proxy);
                var to_delete = new List <int>();
                var tasks     = new List <Task>();
                for (int i = 0; i < queue.Count; i++)
                {
                    var result = viewer.TaskFunction(queue[i], proxy);
                    if (result == -1)
                    {
                        proxy = proxy_wrapper.dequeProxy();
                        if (proxy == null)
                        {
                            Console.WriteLine("proxy not found, aborting");
                            return(-1);
                        }
                        Console.WriteLine("proxy found - {0}", proxy);
                    }
                    else
                    {
                        var to_delete_flag = queue.UpdateItem(i);
                        to_delete.Add(i);
                    }
                }
                to_delete.Reverse();
                foreach (var item in to_delete)
                {
                    queue.RemoveAt(item);
                }
                to_delete.Clear();

                current_period += 1;
                if (refresh_period >= current_period || queue.Count == 0)
                {
                    Console.WriteLine("Refershing queue");
                    var status = RefreshQueue();
                    if (status != 1)
                    {
                        return(-1);
                    }
                    current_period = 0;
                }
            }
            viewer.Close();
            return(1);
        }