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; }
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); }
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_; }