public static TaskMeta NewTask(string sid, string shopNo, int orderType) { var Task = new TaskMeta(); Task.Topic = TaskTopic.BuyTake.ToString(); Task.ShopNo = shopNo; Task.OrderSID = sid; Task.OrderType = orderType; return(Task); }
/// <summary> /// thread function /// </summary> /// <param name="meta"></param> protected void Run(TaskMeta meta) { if (meta == null || meta._queue == null) { OnPythonEvent(null, "Task Meta or Queue is null, could not start Task"); return; } while (!meta.isTaskStop()) { try { if (!meta._queue.IsCompleted) { TaskQueueObject obj = null; if (!meta._queue.TryTake(out obj, 50)) { //queue is empty } else { DispatchData(obj); } _lastQueuedCount = meta._queue.Count; } else { OnPythonEvent(null, "Queue already completed"); break; } } catch (InvalidOperationException e) ///operating queue exception { OnPythonEvent(null, "Task TryTake Queue InvalidOperationException:" + e.StackTrace); } catch (Exception e) { OnPythonEvent(null, "Task Exception:" + e.StackTrace); } finally { if (meta != null && meta._queue != null) { _lastQueuedCount = meta._queue.Count; } } } OnPythonEvent(null, "Task done"); }
private bool CheckIsCompleted() // 检查任务是否完成,如果已完成则跳出当前帧。 { if (BuildedCount == willBuildCount && sonBuildedNum == sonNum && containerBuildedNum == containerNum) { IsComplete = true; buildAble = false; TaskMeta.Reset(); taskCurrentElementIndex = -1; m_OnBuilded(this); m_ParentTask?.OnSonCompleted(RootRect); return(true); } return(false); }
// 根据任务结果格式化当前节点结果, 外部循环使用 internal static bool FormatNodeErrorResp<TTRes>(NodeResp<TTRes> nodeResp, TaskResp<Resp> taskResp, TaskMeta tMeta) where TTRes : Resp, new() { var status = NodeStatus.ProcessCompoleted; if (!taskResp.run_status.IsCompleted()) { var haveError = true; switch (tMeta.node_action) { case NodeResultAction.PauseOnFailed: status = NodeStatus.ProcessPaused; break; case NodeResultAction.FailedOnFailed: status = taskResp.run_status == TaskRunStatus.RunFailed ? NodeStatus.ProcessFailed : NodeStatus.ProcessPaused; break; case NodeResultAction.RevrtAllOnFailed: status = taskResp.run_status == TaskRunStatus.RunFailed ? NodeStatus.ProcessFailedRevert : NodeStatus.ProcessPaused; break; default: haveError = false; break; } if (haveError) { if (status < nodeResp.node_status) { nodeResp.node_status = status; nodeResp.resp = ConvertToNodeResult<TTRes>(taskResp.resp); } return true; } } if (nodeResp.node_status == NodeStatus.ProcessCompoleted && taskResp.resp is TTRes nres) { nodeResp.resp = nres; } return false; }
public void Init(string id, Action <LegoBuildTask> onBuilded, RectTransform parent) { ParentRect = parent; TaskMeta = metaHelper.GetMeta(id); TaskMeta.Reset(); // 每次开始构建都重置元数据 m_OnBuilded = onBuilded; sonNum = TaskMeta.ComponentRefs.Count; containerNum = TaskMeta.ContainerRefs.Count; willBuildCount = TaskMeta.WillBuildCount; CreateRootAtOnce(); // 构建组件根对象 TryMountAtOnce(); AddRootButton(); // 添加根按钮 #if DEBUG AddHelper(); // 编辑器下添加开发助手组件 #endif buildAble = true; }
protected BaseStandTask(TaskMeta meta) : base(meta) { InstanceTaskType = InstanceType.Stand; }
public static void WithNodeMeta(this TaskMeta taskMeta, NodeMeta nodeMeta) { taskMeta.owner_type = nodeMeta.owner_type; taskMeta.flow_id = nodeMeta.flow_id; taskMeta.node_id = nodeMeta.node_id; }
protected BaseTask(TaskMeta meta) : base(meta) { }
protected BaseDomainTask(TaskMeta meta) : base(meta) { InstanceTaskType = InstanceType.Domain; }