示例#1
0
 public static bool SetJobStatuses(Dictionary<int, int> statuses, DataDBAsynchService ddbs)
 {
     string s2 = "";
     bool ret = false;
     if (!statuses_are_send)
         try
         {
             statuses_are_send = true;
             if (statuses.Count() == 0)
             {
                 statuses_are_send = false;
                 ret = true;
             }
             for (int k = 0; k < statuses.Count() / 1000 + 1; k++)
             {
                 // имя хоста// имя хоста
                 int host_ref = GetHostRef(ddbs);
                 string s = "";
                 string SQLstr = "";
                 int l = 1000;
                 if (k == statuses.Count() / 1000)
                     l = statuses.Count() - (statuses.Count() / 1000) * 1000;
                 {
                     //lock (statuses)
                         for (int i = 0; i < l; i++)
                         {
                             if (s.Length > 0)
                                 s += ", ";
                             int val = statuses[statuses.Keys.ToArray()[i + k * 1000]];
                             if (val == 0) { val = 4; Console.WriteLine("Попытались добавить нулевой статус"); }
                             s += "(" + statuses.Keys.ToArray()[i + k * 1000].ToString() 
                             + ", CURRENT_TIMESTAMP, " + val.ToString() + ")";
                         }
                     //insert
                     SQLstr = "insert into AddressesParsingFinish values " + s;
                     /*ddbs.BeginExecuteSQLCommand(SQLstr, _dbConnectionString);     */
                     //Console.WriteLine(SQLstr);
                     s2 = ddbs.ExecuteSQLCommand(SQLstr, ddbs.ConnectionString);
                     if (!string.IsNullOrEmpty(s2))
                     {
                         Console.WriteLine("Ошибка записи изменения состояния задания по дате1 " + s2 + " " + SQLstr);
                         ddbs.WriteErrorMessage(ddbs.ConnectionString, 0, null, "Ошибка записи изменения состояния задания по дате1 "+ s2 + " " + SQLstr );
                         ret = false;
                     }
                 }
             }
             if (string.IsNullOrEmpty(s2))
                 ret = true;
             else
                 ret = false;
         }
         catch (Exception ex)
         {
             string s = ex.Message;
             Console.WriteLine(ddbs.ConnectionString, 0, null, "Ошибка отправки статусов " + s);
             ddbs.WriteErrorMessage(ddbs.ConnectionString, 0, null, "Ошибка отправки статусов " + s);
             ret = false;
         }
         finally
         {
             statuses_are_send = false;
         }
     else
         ret = false;
     return ret;
 }
示例#2
0
 public static void ClearAddressParsingOld(DataDBAsynchService ddbs)
 {
     //update
     string SQLstr = "delete from AddressesParsing where Host_Ref=" + GetHostRef(ddbs) + " and Status = 0";
     /*ddbs.BeginExecuteSQLCommand(SQLstr, _dbConnectionString);*/
     string s2 = ddbs.ExecuteSQLCommand(SQLstr, ddbs.ConnectionString);
     if (!string.IsNullOrEmpty(s2))
         ddbs.WriteErrorMessage(ddbs.ConnectionString, 0, null, "Ошибка удаления недоделанных работ " + s2);
 }
示例#3
0
        public static string[][] GetJobs(DataDBAsynchService ddbs, int mode=0)
        {
                    string[][] jobs_ = null;
            try
            {
                if (!jobs_in_get)
                {
                    jobs_in_get = true;
                    try
                    {// имя хоста

                        Console.WriteLine(DateTime.Now.ToLongTimeString() + " Получаем новые задания на парсинг");
                        jobs_ = RedJobsSub(ddbs);
                        if (jobs_==null || jobs_.Count() < 150)
                        {
                            if (jobs_!=null)
                                GC.SuppressFinalize(jobs_);
                            string q = GetSQLString(ddbs, mode);
                            Console.WriteLine("Запускаем скрипт получения новой работы " + q);
                            string s = ddbs.ExecuteSQLCommand(q, ddbs.ConnectionString, 29);
                            if (!string.IsNullOrEmpty(s))
                            {
                                Console.WriteLine("Скрипт получения новой работы завершился с ошибкой " + s);
                                //ddbs.WriteErrorMessage(ddbs.ConnectionString, 0, null, "Скрипт получения новой работы завершился с ошибкой" + s);
                                //return null;
                            }
                            else
                            {
                                Console.WriteLine("Скрипт получения новой работы успешно завершился");  
                                jobs_ = RedJobsSub(ddbs);
                            }
                        }
                    }
                    catch (SystemException ex)
                    {
                        string s = ex.Message;
                        Console.WriteLine("Ошибка четния задания " + s);
                        //ddbs.WriteErrorMessage(ddbs.ConnectionString, 0, null, "Ошибка четния задания " + s);
                        Console.WriteLine("Ошибка четния задания " + s);
                    }
                    finally
                    { jobs_in_get = false; }
                }
            }
            catch (Exception e) { Console.WriteLine("Произошла ошибка при получении заданий же же " + e.Message); }
            return jobs_;
        }