Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
        }