public int Init(Logic.TimedTaskType task, DateTime execTime, string json) { TimedTask model = new TimedTask(); model.TypeId = (int)task; model.ExecTime = execTime; model.Value = json; return(Insert(model)); }
private bool TimedTaskHandle() { bool flag = false; if (listTimedTask != null && listTimedTask.Count > 0) { while (listTimedTask.Count > 0) { var item = listTimedTask[0]; //任务类型 Logic.TimedTaskType task = (Logic.TimedTaskType)item.TypeId; switch (task) { case Logic.TimedTaskType.通道开启: #region 开启通道 int keyId = JObject.Parse(item.Value)["keyId"].ToInt(); KeyValue kv = keyValueDao.Single(keyId); kv.UTime = DateTime.Now; kv.State = 0; kv.Remark = $"{DateTime.Now.ToString()}自动开启"; bool kvFlag = keyValueDao.Update(kv); MemcachHelper.Delete(Constant.list_keyvalue_key + (int)Logic.KeyValueType.支付通道管理); //清理缓存 Logs.WriteLog($"处理ID:{item.ID},flag:{kvFlag}任务数据:{JsonConvert.SerializeObject(item)}", "d:\\Log\\自动处理", "定时任务"); #endregion item.State = kvFlag ? 1 : -1; break; default: Logs.WriteLog($"未处理ID:{item.ID},任务数据:{JsonConvert.SerializeObject(item)}", "d:\\Log\\自动处理", "定时任务"); item.State = -1; break; } #region 任务状态更新 item.UTime = DateTime.Now; flag = timedTaskDao.Update(item); #endregion if (flag) { int num = Convert.ToInt32(_tbxTimedTaskSuccess.Text); num++; _tbxTimedTaskSuccess.Text = num.ToString(); } else { int num = Convert.ToInt32(_tbxTimedTaskFail.Text); num++; _tbxTimedTaskFail.Text = num.ToString(); } listTimedTask.Remove(item); Thread.Sleep(ConfigInfo.theadTime); } } else { listTimedTask = timedTaskDao.GetQuery(10, " State=0 and getdate()>ExecTime ", null, "order by id asc"); if (listTimedTask != null && listTimedTask.Count > 0) { return(TimedTaskHandle()); } } return(flag); }