/// <summary> /// 清理队列 /// </summary> public void Clear() { Logger.Info("队列已清空"); RootTasks.Clear(); CallbackJson = ""; TaskHandlerType = null; }
/// <summary> /// 创建任务 /// </summary> /// <typeparam name="TTask">任务类型</typeparam> /// <param name="doMethod">任务执行方法</param> /// <param name="undoMethod">任务回滚方法</param> /// <returns></returns> private ITaskBuilder Apply <TTask>(Expression <Action <TTask> > doMethod, Expression <Action <TTask> > undoMethod) where TTask : ITask { Logger.Info($"Begin Apply RootTasks Count:{RootTasks.Count}"); RootTasks.Add(new TaskHierarchy { IdentityBuilder = () => { //延迟执行 //所有任务设定参数完毕才执行第一个任务 //MysoftTaskHierarchy.SetTaskChain方法中设定 var doId = TaskContext.Schedule(doMethod, TimeSpan.FromDays(1000)); //撤销任务入队 //延迟执行 var undoId = TaskContext.Schedule(undoMethod, TimeSpan.FromDays(1000)); return(new TaskIdentity { DoId = doId, UndoId = undoId }); }, Mode = TaskRunningModeEnum.Parallel, Name = GetTaskName <TTask>() }); Logger.Info($"After Apply RootTasks Count:{RootTasks.Count}"); return(this); }