예제 #1
0
        void func(object list_params)//Функция потока, передаем параметр
        {
            int limit  = ((List <int>)list_params)[0];
            int offset = ((List <int>)list_params)[1];

            try
            {
                DBConection db    = new DBConection();
                int         count = db.count();

                Google google = new Google("http://google.ru", MODE);
                while (offset < count)
                {
                    foreach (DBKeyword k in db.list(offset, limit))
                    {
                        Console.WriteLine("Выбираем словосочетание из БД="
                                          + k.keyword + "[" + k.keyword_id + "] offset="
                                          + offset + " limit=" + limit);

                        Console.WriteLine("Обращаемся к гуглу");
                        //открываем настройки и ставим регион
                        google.open_settings();
                        //тут выбираем из базы слова и в цикле по очереди вызываем метод поиска
                        google.search(k.keyword, k.keyword_id);
                    }
                    offset += STEP;
                    MyIni.Write("offset_google_" + this.threadId, "" + offset);
                }
                google.exit();
            }
            catch {}
        }
예제 #2
0
        static void Main(string[] args)
        {
            int offset       = 0;
            int limit        = STEP;
            int threadsCount = 3;

            DBConection db    = new DBConection();
            int         count = db.count();
            int         offsetStepByThread = (int)(count / threadsCount);

            var MyIni = new IniFiles("Settings.ini");

            threadsCount = !MyIni.KeyExists("thread_count") ?
                           Int32.Parse(MyIni.Write("thread_count", "" + threadsCount)):
                           Int32.Parse(MyIni.Read("thread_count"));

            Console.WriteLine("Потоков: {0} , смещение в бд для 1 потока {1}", threadsCount, offsetStepByThread);
            Console.ReadKey();
            for (int i = 0; i < threadsCount; i++)
            {
                offset = !MyIni.KeyExists("offset_yandex_" + i) ?
                         Int32.Parse(MyIni.Write("offset_yandex_" + i, "" + (offsetStepByThread * i))) :
                         Int32.Parse(MyIni.Read("offset_yandex_" + i));

                limit = !MyIni.KeyExists("limit_yandex_" + i) ?
                        Int32.Parse(MyIni.Write("limit_yandex_" + i, "" + STEP)) :
                        Int32.Parse(MyIni.Read("limit_yandex_" + i));

                Console.WriteLine("id={0}  limit=>{1} offset=>{2}", i, limit, offset);

                YandexThreader yThread = new YandexThreader(i, limit, offset);

                //offset = !MyIni.KeyExists("offset_google_" + i) ?
                // Int32.Parse(MyIni.Write("offset_google_" + i, "" + (threadsCount * i))) :
                //  Int32.Parse(MyIni.Read("offset_google_" + i));

                //limit = !MyIni.KeyExists("limit_google_" + i) ?
                //   Int32.Parse(MyIni.Write("limit_google_" + i, "" + STEP)) :
                //   Int32.Parse(MyIni.Read("limit_google_" + i));


                //GoogleThreader gThread = new GoogleThreader(i, limit, offset);
                //Console.WriteLine("test limit=>{0} offset=>{1}", limit, offset);
            }

            Console.ReadKey();
            //закрываем окно
            Environment.Exit(0);
        }
예제 #3
0
        void func(object list_params)//Функция потока, передаем параметр
        {
            int limit  = ((List <int>)list_params)[0];
            int offset = ((List <int>)list_params)[1];

            try
            {
                //mut.WaitOne();
                DBConection db    = new DBConection();
                int         count = db.count();


                Yandex yandex = new Yandex("https://yandex.ru", MODE);
                if (!yandex.isValidRegion("Москва"))
                {
                    yandex.open_settings();
                }

                yandex.change_search_pos_count();

                // mut.ReleaseMutex();

                while (offset < count)
                {
                    foreach (DBKeyword k in db.list(offset, limit))
                    {
                        Console.WriteLine("Выбираем словосочетание из БД="
                                          + k.keyword + "[" + k.keyword_id + "] offset="
                                          + offset + " limit=" + limit);
                        Console.WriteLine("Обращаемся к яндексу");
                        //тут выбираем из базы слова и в цикле по очереди вызываем метод поиска
                        // mut.WaitOne();
                        yandex.search(k.keyword, k.keyword_id);
                        // mut.ReleaseMutex();
                    }

                    offset += STEP;
                    MyIni.Write("offset_yandex_" + this.threadId, "" + offset);
                }
                yandex.exit();
            }
            catch
            {
            }
        }