Beispiel #1
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);
     }
 }
Beispiel #2
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);
            }
        }
Beispiel #3
0
        public static ICalculate GetAggRandomCalculate(string resultId)
        {
            int num = _random.Next(0, 7);

            return(WindowTaskUtil.GetAggregateCalculate(resultId, (AggregateCalculateType)num));
        }