public void AddSMSToQueThread() { int LoopTimeInMiliSecound = SMS.Default.ProccessTimeLoop; while (isRun) { isRun = false; if (MSMProccess.MT_PROC_QUE.Count < 100) { DataTable tbl = SMS_MTDB_SQL.GetMTByStatus(false); EnQueue(tbl); } isRun = true; Thread.Sleep(LoopTimeInMiliSecound); //1000 * 60 * 60 = 1h } }
private void EnQueue(DataTable tbl) { int step = 1; if (tbl != null && tbl.Rows.Count > 0 && MSMProccess.MT_PROC_QUE.Count < 100) { _logger.Info(" "); _logger.Info(" "); _logger.Info(" "); _logger.Info(string.Format("MT_PROC_QUE count: {0}", MSMProccess.MT_PROC_QUE.Count)); _logger.Info(string.Format("******step: {0} at {1}", step++, DateTime.Now)); _logger.Info(string.Format("******Number of User: {0}", tbl.Rows.Count)); //Get list of MT id string lstId = "0"; for (int i = 0; i < tbl.Rows.Count; i++) { lstId += "," + Convert.ToString(tbl.Rows[i]["ID"]); } SMS_MTDB_SQL.MTUpdateByListId(lstId); foreach (DataRow row in tbl.Rows) { try { ViSport_S2_Registered_UsersInfo info = initInfo(row); MSMProccess.MT_PROC_QUE.Enqueue(info); } catch (Exception ex) { _logger.Error(string.Format("error! {0}", ex.Message + " -- " + ex.StackTrace) + Environment.NewLine); } } ViSport_S2_SMS_MTController.UpdateStatus(0); //UPDATE JobStatus Sau Khi Gui MT Xong; } }
public static void SentMtInfo(ViSport_S2_Registered_UsersInfo info) { DataTable dt = ViSport_S2_SMS_MTController.GetMtContent(); //if(dt != null && dt.Rows.Count > 0) //{ // if(!string.IsNullOrEmpty(dt.Rows[0]["MT"].ToString())) // { try { string day = DateTime.Now.ToString("yyyyMMdd"); DataTable dtMt = ViSport_S2_SMS_MTController.CheckAlreadySendMt(info.User_ID, 0, day); if (dtMt != null && dtMt.Rows.Count > 0) { _logger.Info("Da gui MT cho so : " + info.User_ID + "| day : " + day); } else { string message = string.Empty; string isMt = dt.Rows[0]["IsMt"].ToString(); if (isMt == "1") { message = GetSetting("MessageTue"); } else if (isMt == "2") { message = GetSetting("MessageThu"); } else if (isMt == "3") { message = GetSetting("MessageSat"); } _logger.Info(string.Format("Started Send MT User_ID= {0}, Request_ID = {1}, ID = {2}, Message = {3}", info.User_ID, info.Request_ID, info.ID, message)); //#region Gui MT cho khach hang //var objSentMt = new ServiceProviderService(); //string serviceId = info.Service_ID; //string commandCode = info.Command_Code; //string requestId = info.Request_ID; //objSentMt.sendMT(info.User_ID, message, serviceId, commandCode, "1", requestId, "1", "1", "0", "0"); //var objMt = new ViSport_S2_SMS_MTInfo(); //objMt.User_ID = info.User_ID; //objMt.Message = message; //objMt.Service_ID = serviceId; //objMt.Command_Code = commandCode; //objMt.Message_Type = 1; //objMt.Request_ID = requestId; //objMt.Total_Message = 1; //objMt.Message_Index = 0; //objMt.IsMore = 0; //objMt.Content_Type = 0; //objMt.ServiceType = 0; //objMt.ResponseTime = DateTime.Now; //objMt.isLock = false; //objMt.PartnerID = "Xzone"; //objMt.Operator = "VClip_MT"; //ViSport_S2_SMS_MTController.InsertVClip(objMt); //#endregion } } catch (TimeoutException e) { _logger.Error(string.Concat("mySendMT - ", e.StackTrace)); _logger.Error(string.Concat("mySendMT - ", e.Message)); MT_PROC_QUE.Enqueue(info); } catch (Exception ex) { //neu phat sinh loi he thong thi Update Islock = 0, de lan sau co the charge lai _logger.Info(string.Format("ERROR!Sending to {0} is error, Request_ID = {1}, Error mess = {2}", info.User_ID, info.Request_ID, ex.Message) + Environment.NewLine); SMS_MTDB_SQL.MTUpdateFail(info.ID); } // } //} Thread.Sleep(100); }