Exemple #1
0
        public Task <IActionResult> HeartBeat(NodeHeartBeatModel model)
        {
            return(this.ResultAsync(async() =>
            {
                bool ret = false;
                if (model.IsModelValid())
                {
                    INodeModel node = null;
                    if (!String.IsNullOrEmpty(model.Address))
                    {
                        node = await this.Db.Nodes.GetBy(model.Address);
                        if (null != node)
                        {
                            node.CopyPropertiesFrom(model);
                            node.LastConnectionTime = DateTime.Now;

                            var usage = NodeResourceUsages.Instance.Get(node.Address);
                            usage.Add(node.CpuUsage, node.MemoryUsage);

                            node.CpuUsage = usage.CpuUsage;
                            node.MemoryUsage = usage.MemoryUsage;
                            node.TotalBeatsCount = usage.TotalBeatsCount;

                            await this.Db.Nodes.Save(node);

                            ret = true;
                        }
                    }
                }

                return ret;
            }));
        }
Exemple #2
0
            public async Task HeartBeat()
            {
                NodeHeartBeatModel model = new NodeHeartBeatModel();

                model.Address = DataSources.Jsons.AppSettings.Config.Address;

                IResourceMonitor resourceMonitor = SystemInfo.CreateResourceMonitor();

                model.CpuUsage    = resourceMonitor.GetCpuUsage();
                model.MemoryUsage = resourceMonitor.GetMemoryUsage();

                model.TotalExecutingJobCount = WorkerServiceList.Instance.Count(p => p.IsRunning);  //Workers.Instance.TotalWorkerCount;//şu an için. Node' ların wırker execute yapısı ortaya çıkınca burasıu güncellenecek.
                model.TotalQueuedJobCount    = Queue.Instance.Count();

                await RestClient.Instance.PostAsync <bool>($"{KamajiNodeActions.HeartBeat}", model);
            }