static void Main(string[] args) { // set timeout as 3 sec TimeSpan cacheTimeout = new TimeSpan(0, 0, 3); // KEY_TYPE : string // VALUE_TYPE : int TimeoutCache<string, int> cache = new TimeoutCache<string, int>(cacheTimeout); // set value cache["hihi"] = 10; while (true) { try { int val = cache["hihi"]; Console.WriteLine("Cache hit. value : {0}", val); } catch (TimeoutCacheMissException) { Console.WriteLine("Cache miss"); } // sleep 1 sec Thread.Sleep(1000); } }
public bool Start() { lp = new LocalParams(); if (!dbexec.IsConn(lp.SqlConnStr)) { SMSLog.Debug("SmsService==>Init=>sql登录失败[" + lp.SqlConnStr + "]"); return(false); } MySqlDBExec.ConnectionstringLocalTransaction = lp.SqlConnStr; _cstDic = new Dictionary <int, SendThread>(); _cmppAccountDic = new Dictionary <int, AccountInfoModel>(); //初始数据标识 string sql1 = "update t_sendsms set CTSubmitStatus=0 Where CTGatewayNum='" + lp.GateWayNum + "'"; string sql2 = "update t_smsmobile_t set smsFlag='0' where SubmitStatus='0' and GatewayNum='" + lp.GateWayNum + "'"; int re1 = MySqlDBExec.ExecuteNonQuery(sql1, null); SMSLog.Debug("SmsService==>Init初始内容表:" + re1); int re2 = MySqlDBExec.ExecuteNonQuery(sql2, null); SMSLog.Debug("SmsService==>Init初始手机号码表:" + re2); cache = new TimeoutCache(60 * 30);//缓存 ReportQueue = new SMDQueue[_reportQueueNum]; ReportSeqQueue = new SMDQueue[_reportQueueNum]; for (int i = 0; i < _reportQueueNum; i++) { string title = "Report_" + i; ReportQueue[i] = new SMDQueue(title); ReportQueue[i].Start(3000); string seqt = "ReportSeq_" + i; ReportSeqQueue[i] = new SMDQueue(seqt); ReportSeqQueue[i].Start(4000); } /* * GlobalModel.UpdateMobileSubmitStateHandler = this.UpdateMobileSubmitState; * GlobalModel.UpdateReportStateHandler = this.UpdateReportState; * GlobalModel.UpdateMobileByBatchNumHandler = this.UpdateMobileByBatchNum; * GlobalModel.UpdateSMSContentSubmitStatuHandler = this.UpdateSMSContentSubmitStatu; * GlobalModel.DeleteContentHandler = this.DeleteContent; * GlobalModel.SaveMoHandler = this.SaveMo; * */ //读取企业CMPP账号信息 List <AccountInfoModel> accountLst = LoadCmppAccount(); if (accountLst != null && accountLst.Count > 0) { foreach (AccountInfoModel m in accountLst) { SendThread cmpp = new SendThread(m); if (cmpp.Login()) { _cstDic.Add(m.eprId, cmpp); _cmppAccountDic.Add(m.eprId, m); cmpp.IsSend = true; cmpp.Start(); } else { SMSLog.Debug("SmsService==>Init[" + m.eprId + "]登录失败"); } Thread.Sleep(10); } } else { SMSLog.Debug("SmsService==>[Init]读取cmpp账号失败"); return(false); } GlobalModel.IsStopCollect = false; CollectObject_Business co = new CollectObject_Business(); _collDataTimer = new Timer(new TimerCallback(CollectThread), co, lp.ReadContentDealy, lp.ReadContentDealy); SMSLog.Debug("SmsService==>[Init]启动成功"); return(true); }
/// <summary> /// Clears the cache /// </summary> public void Clear() { HandlerCache.Clear(); TimeoutCache.Clear(); }