1 public class TimerHelper 2 { 3 System.Threading.Timer timer; 4 public TaskSendMMS tasksendmms { get; set; } 5 public void Start() 6 { 7 timer = new System.Threading.Timer(new TimerCallback(tasksendmms.Execute), null, 100, 30000); 8 tasksendmms.timer = timer; 9 } 10 }
public class TaskSendMMS { public Guid MMSId { get; set; } public Guid PhonePackageId { get; set; } public DateTime ExeTime { get; set; } private log log = new log(); public System.Threading.Timer timer; public TaskSendMMS() { } public void Execute(object a) { try { log.writelog("=========================================開始執行計划========================================"); string Extime = ExeTime.ToString("MM-dd HH:mm"); string today = DateTime.Now.ToString("MM-dd HH:mm"); if (today.Equals(Extime))//如果時間是執行時間,則執 { log.writelog("執行時間到了,時間為:" + today); DataBase.DataClasses_MMSDataContext db = new DataBase.DataClasses_MMSDataContext(); var mms = db.MMS.Where(c => c.ID == this.MMSId).FirstOrDefault(); log.writelog("查詢數據庫MMS記錄名稱:" + mms.Title); if (mms.State != 2) //如果該彩信 不是延遲發送的,直接退出. { log.writelog("該彩信不是延遲發送的,直接退出"); if (null != timer) { log.writelog("該彩信不是延遲發送的,直接退出 並關閉timer"); timer.Dispose(); } } else { log.writelog("執行時間到了,開始調用Web接口立即發送彩信."); //發送彩信 Business.Start(this.MMSId.ToString(), this.PhonePackageId.ToString(), ""); log.writelog("調用接口成功,完成發送彩信."); mms.State = 1; db.SubmitChanges(); log.writelog("彩信狀態,修改為1"); if (null != timer) { log.writelog("全部完成 並關閉timer"); timer.Dispose(); } } } else { log.writelog("執行時間未到! 時間為: " + today); } } catch (Exception ee) { log.writelog("出現異常信息:" + ee.Message); } log.writelog("=========================================結束執行計划========================================"); } }
1 /// <summary> 2 /// 啟動執行計划 3 /// </summary> 4 /// <param name="MmsId"></param> 5 /// <param name="packageIDs"></param> 6 /// <param name="datetime"></param> 7 /// <returns></returns> 8 public int StartSendMMs(string MmsId, string packageIDs, string datetime) 9 { 10 TimerHelper timer = new TimerHelper(); 11 timer.tasksendmms = new TaskSendMMS() { ExeTime = DateTime.Parse(datetime), MMSId = new Guid(MmsId), PhonePackageId = new Guid(packageIDs) }; 12 timer.Start(); 13 return 0; 14 }
