예제 #1
0
        public void Run(object o)
        {
            while (true)
            {
                if (!_nodeInfo.HaveAcessRight)
                {
                    break;
                }

                if (!PureCat.IsInitialized())
                {
                    Thread.Sleep(5000);
                    continue;
                }

                PureCat.DoTransaction("System", "Status", () =>
                {
                    _nodeInfo.Refresh();
                    PureCat.LogHeartbeat("Heartbeat", AppEnv.IP, PureCatConstants.SUCCESS, XmlHelper.XmlSerialize(_nodeInfo, Encoding.UTF8));
                    PureCat.LogEvent("System", $"Cat.Version : {PureCat.Version}", PureCatConstants.SUCCESS, PureCat.Version);
                });

                Thread.Sleep(60000);
            }
        }
예제 #2
0
 public StatusUpdateTask(IMessageStatistics statistics)
 {
     try
     {
         _nodeInfo = new NodeStatusInfo(statistics);
         _nodeInfo.HeartbeatExtensions.Add(new CpuInfo());
         _nodeInfo.HeartbeatExtensions.Add(new NetworkIO());
         _nodeInfo.HeartbeatExtensions.Add(new DiskIO());
         _nodeInfo.Refresh();
         _nodeInfo.HaveAcessRight = true;
     }
     catch
     {
     }
 }
예제 #3
0
        public StatusUpdateTask(IMessageStatistics mStatistics, Domain domainInfo)
        {
            this.domainInfo = domainInfo;

            try
            {
                m_nodeInfo = new NodeStatusInfo(mStatistics);
                m_nodeInfo.HeartBeatExtensions.Add(new CpuInfo());
                m_nodeInfo.HeartBeatExtensions.Add(new NetworkIO());
                m_nodeInfo.HeartBeatExtensions.Add(new DiskIO());
                m_nodeInfo.Refresh();
                m_nodeInfo.HaveAcessRight = true;
            }
            catch
            {
            }
        }
예제 #4
0
        public void Run(object o)
        {
            while (true)
            {
                if (!m_nodeInfo.HaveAcessRight)
                {
                    break;
                }
                m_nodeInfo.Refresh();
                var          messageTreeId = Jasmine.GetManager().GetMessageIdFactory().GetNextId();
                ITransaction t             = Jasmine.GetProducer().NewTransaction("System", "Status", messageTreeId);
                IHeartbeat   h             = Jasmine.GetProducer().NewHeartbeat("Heartbeat", domainInfo.Ip, messageTreeId);
                var          xml           = XmlHelper.XmlSerialize(m_nodeInfo, Encoding.UTF8);
                h.AddData(xml);
                h.Status = "0";
                h.Complete(messageTreeId);
                t.Status = "0";
                t.Complete(messageTreeId);

                Thread.Sleep(this.domainInfo.TickTime);
            }
        }
예제 #5
0
        public void Run(object o)
        {
            while (true)
            {
                if (_nodeInfo == null || !_nodeInfo.HaveAcessRight)
                {
                    Thread.Sleep(60000);
                    break;
                }
                _nodeInfo.Refresh();
                ITransaction t   = CatClient.GetProducer().NewTransaction("System", "Status");
                var          xml = XmlHelper.XmlSerialize(_nodeInfo, Encoding.UTF8);

                //Logger.Info(xml);

                CatClient.GetProducer().LogHeartbeat("Heartbeat", AppEnv.IP, PureCatConstants.SUCCESS, xml);
                t.Complete();

                CatClient.GetProducer().LogEvent("System", "Version", PureCatConstants.SUCCESS, System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString());

                Thread.Sleep(60000);
            }
        }