Beispiel #1
0
        public void Handle()
        {
            UseSysInfoWatch usi = new UseSysInfoWatch();

            while (true)
            {
                var info = usi.GetServerStatus();
                Console.WriteLine(info.RunTime);
                Console.WriteLine($"CPU:{info.Cpu}");
                Console.WriteLine($"Memory:{info.Memory}");
                System.Threading.Thread.Sleep(1000);
            }
        }
Beispiel #2
0
        static void SendMonitorData()
        {
            try
            {
                //被监控的APP
                var watchUsers = MonitorHub.WatchData.Select(wu => wu.WatchServiceName).ToList().Distinct();

                foreach (var watchUser in watchUsers)
                {
                    var connectionIds = MonitorHub.WatchData.Where(wu => wu.WatchServiceName == watchUser).Select(wu => wu.ConnectionId).ToList();
                    if (connectionIds.Count <= 0)
                    {
                        continue;
                    }
                    if (watchUser == viperConfig.Target.AppName)
                    {
                        var info = Usi.GetServerStatus();
                        info.Tag = watchUser;
                        _monitorContext.Clients.Clients(connectionIds.ToArray()).SendAsync("SendMonitorData", info);
                    }
                    else
                    {
                        GetServerStatus(watchUser).ContinueWith(rlt =>
                        {
                            var info = rlt.Result;
                            if (info != null)
                            {
                                info.Tag = watchUser;
                                _monitorContext.Clients.Clients(connectionIds.ToArray()).SendAsync("SendMonitorData", info);
                            }
                        }).Wait();
                    }
                }
            }
            catch (Exception ex)
            {
                // ignored
            }
        }