Exemplo n.º 1
0
        public YADataDBURLQueue(string dbConnectionString, int mode = 0)
        {
            Console.WriteLine("Создаем очередь");
            tick += Tick;
            work = false;
            jobs_made = 0;
            got_jobs = new Queue<DataDBURLJob>(0);
            photo_aps = new Queue<DirtyApartments>(0);
            disposed = false; 
            //обновляем ссылку на подключение к базе для всяких асинхронных передач данных в духе ошибок
            ddbs = new DataDBAsynchService(dbConnectionString);
            ddbs.WriteErrorMessage(dbConnectionString, 0, "", "start");
            //получаем задания на парсинг
            jobs = new DataDBURLJobs(ddbs, mode, false);
            //jobs.SetJobToStartOrStop(true);
            t_fill = new System.Timers.Timer();
            t_fill.Elapsed += new System.Timers.ElapsedEventHandler(fill_timer);
            t_fill.Interval = 30000;
            t_restart = new System.Timers.Timer();
            t_restart.Elapsed += new System.Timers.ElapsedEventHandler(restart_timer);
            //рестартить раз в 12 часов
            t_restart.Interval = 12 * 60 * 60 * 1000;
            this.mode = mode;

            pq = new PhotoQueue(ddbs);
            arw = new AsyncRunWork();
            ap = new apartments();
            work = true;
            t_fill.Start();
            t_restart.Start();
            Console.WriteLine("Создали очередь");
        }
Exemplo n.º 2
0
        public EventQueue(string dbConnectionString, int mode = 0)
        {
            needjobs += GetJobs;
            getpages += GetPages;
            processonepage += ProcessOnePage;
            getphotosfromonepage += GetPhotosFromOnePage;
            statusesadd += StatusesAdd;
            sendapartmentsandstatuses += SendApartmentsAndStatuses;
            fillqueue += FillQueue;

            jobs_made = 0;
            //обновляем ссылку на подключение к базе для всяких асинхронных передач данных в духе ошибок
            ddbs = new DataDBAsynchService(dbConnectionString);
            ddbs.WriteErrorMessage(dbConnectionString, 0, "", "start");
            this.mode = mode;
            arw = new AsyncRunWork();
            starttime = DateTime.Now;

            if (jobs != null)
                lock (jobs)
                    jobs = new DataDBURLJobs(ddbs, mode, false);
            else
                jobs = new DataDBURLJobs(ddbs, mode, false);
            lock (jobs)
                if (jobs.Count() < 100)
                    needjobs();
    }