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