public ExpressionTask(string expId, string expName, ExpressionCalculateType expCalculateType, int timerInterval, string script, ICalculate calc) { Id = expId; Name = expName; Script = script; PatternDataList = new List <string>(); PatternDataList.AddRange(GetPatternDataList(Script)); if (calc == null) { CalculateOperator = new ExpressionCalculate($"{Id}_result"); } else { CalculateOperator = calc; } _timer = new System.Timers.Timer(timerInterval); _timer.Elapsed += OnTimedEvent; _timer.AutoReset = true; TimerInterval = timerInterval; ExpressionCalculateType = expCalculateType; }
public bool InsertOrUpdate(RpcContext[] rpcContexts) { try { foreach (RpcContext item in rpcContexts) { if (item.CalculateType == CalculateType.Aggregate) { Calculate.Calculate calEntity = WindowTaskUtil.GetAggregateCalculate(item.ResultId, item.AggregateCalculateType); TaskManager.AddOrUpdateWindowTask(item.TaskId, item.TaskName, item.IsOpenWindow, item.WindowInterval, item.DelayWindowCount, calEntity); } else if (item.CalculateType == CalculateType.Expression) { Calculate.Calculate calEntity = new ExpressionCalculate(item.ResultId); TaskManager.AddOrUpdateExpressionTask(item.TaskId, item.TaskName, item.ExpressionCalculateType, item.WindowInterval, item.ExpressionScript, calEntity); } } return(true); } catch (Exception ex) { Logger.Log.Error(true, "执行InsertOrUpdate出错", ex); return(false); } }
public bool InsertOrUpdate(RpcContext[] rpcContexts) { try { foreach (RpcContext item in rpcContexts) { if (item.CalculateType == CalculateType.Aggregate) { List <ICalculate> calcs = new List <ICalculate>(); for (int i = 0; i < item.AggregateCalculateTypeList.Length; i++) { string resultId = item.ResultIdList[i]; AggregateCalculateType aggType = item.AggregateCalculateTypeList[i]; Calculate.Calculate calEntity = WindowTaskUtil.GetAggregateCalculate(resultId, aggType); calcs.Add(calEntity); } TaskManager.AddOrUpdateWindowTask(item.TaskId, item.TaskName, item.IsOpenWindow, item.WindowInterval, item.DelayWindowCount, calcs); } else if (item.CalculateType == CalculateType.Expression) { Calculate.Calculate calEntity = new ExpressionCalculate(item.ResultIdList[0]); TaskManager.AddOrUpdateExpressionTask(item.TaskId, item.TaskName, item.ExpressionCalculateType, item.WindowInterval, item.ExpressionScript, new List <ICalculate>() { calEntity }); } } return(true); } catch (Exception ex) { Logger.Log.Error(true, "执行InsertOrUpdate出错", ex); return(false); } }