Exemple #1
0
        static void Main(string[] args)
        {
            config = new ProducerConfig
            {
                BootstrapServers = string.Join(',', KafkaConf.Instance.MQHosts) //BootstrapServers属性为以逗号隔开的多个代理地址
            };
            Task.Run(() => Produce());
            if (System.IO.File.Exists(Path))
            {
                try
                {
                    TaskCount = int.Parse(System.IO.File.ReadAllText(Path).Trim());
                }
                catch (Exception ex)
                {
                    Logger.Log.Error(true, "读TaskCount异常:", ex);
                }
            }

            executionEnvironment = ExecutionEnvironment.GetExecutionEnvironment(args);

            for (int i = 0; i < TaskCount; i++)
            {
                string key = i.ToString("0000");
                if (!executionEnvironment.TaskManager.ContainsWindow(key))
                {
                    _windowInterval = Calc.GetRandomWindowInterval();
                    _calculate      = Calc.GetAggRandomCalculate(key + "_result");
                    executionEnvironment.TaskManager.AddOrUpdateWindowTask(key, $"窗口{key}", true, _windowInterval, _delayWindowCount, new List <ICalculate>()
                    {
                        _calculate
                    });
                }
            }

            executionEnvironment.AddSource(new SourceFunctionFromKafka(string.Join(',', KafkaConf.Instance.MQHosts), KafkaConf.Instance.GroupID, KafkaConf.Instance.TopicName));
            executionEnvironment.AddSink(new SinkFunction());
            executionEnvironment.ExcuteSource();

            //while (true)
            //{
            //    var line = Console.ReadLine();
            //    if (line == "exit")
            //    {
            //        executionEnvironment.Stop();
            //        break;
            //    }
            //}
            Console.ReadKey();
        }
Exemple #2
0
        static void Main(string[] args)
        {
            rpcContexts = new List <RpcContext>();
            if (System.IO.File.Exists(Path))
            {
                try
                {
                    TaskCount = int.Parse(System.IO.File.ReadAllText(Path).Trim());
                }
                catch (Exception ex)
                {
                    Logger.Log.Error(true, "读TaskCount异常:", ex);
                }
            }

            executionEnvironment = ExecutionEnvironment.GetExecutionEnvironment(args);

            rpcClient = new RpcClient(GlobalConfig.Config.RpcIp, GlobalConfig.Config.RpcListenPort);

            ClientTaskAdd();

            executionEnvironment.AddSource(new RandomSourceFunction(rpcClient));

            executionEnvironment.AddSink(new SinkFunction());

            executionEnvironment.ExcuteSource();

            ClientTaskRemove();

            while (true)
            {
                var line = Console.ReadLine();
                if (line == "exit")
                {
                    ((ExecutionEnvironment)executionEnvironment).Stop();
                    break;
                }
            }
        }
Exemple #3
0
        static void Main(string[] args)
        {
            if (System.IO.File.Exists(Path))
            {
                try
                {
                    TaskCount = int.Parse(System.IO.File.ReadAllText(Path).Trim());
                }
                catch (Exception ex)
                {
                    Logger.Log.Error(true, "读TaskCount异常:", ex);
                }
            }

            executionEnvironment = ExecutionEnvironment.GetExecutionEnvironment(args);

            List <string> tasks = new List <string>();

            for (int i = 0; i < TaskCount; i++)
            {
                string key = i.ToString("0000");
                if (!executionEnvironment.TaskManager.ContainsWindow(key))
                {
                    _windowInterval = Calc.GetRandomWindowInterval();
                    _windowInterval = 5;
                    _calculates     = Calc.GetAggRandomCalculateList(new string[] { key + "_result1", key + "_result2" });

                    executionEnvironment.TaskManager.AddOrUpdateWindowTask(key, $"窗口{key}", true, _windowInterval, _delayWindowCount, _calculates);

                    string t = String.Format("{0},{1},{2}", key, _windowInterval, _calculates.Count.ToString());

                    tasks.Add(t);
                }
            }

            List <string> arr = new List <string>();

            arr.Add(Environment.NewLine);
            var cls = tasks.GroupBy(t => t.Split(",")[2]).Select(t => (new { Key = t.Key, Count = t.Count() }));

            foreach (var ele in cls)
            {
                arr.Add("计算统计:" + ele.Key + ":" + ele.Count.ToString());
            }

            var wls = tasks.GroupBy(t => t.Split(",")[1]).Select(t => (new { Key = t.Key, Count = t.Count() }));

            foreach (var ele in wls)
            {
                arr.Add("窗口统计:" + ele.Key + ":" + ele.Count.ToString());
            }

            tasks.AddRange(arr);

            string path = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "tasks", "current_tasks.txt");

            if (System.IO.File.Exists(path))
            {
                System.IO.File.Delete(path);
            }

            System.IO.File.AppendAllLines(path, tasks.ToArray());

            executionEnvironment.AddSource(new RandomSourceFunction());

            executionEnvironment.AddSink(new SinkFunction());

            executionEnvironment.ExcuteSource();

            while (true)
            {
                var line = Console.ReadLine();
                if (line == "exit")
                {
                    ((ExecutionEnvironment)executionEnvironment).Stop();
                    break;
                }
            }
        }