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; })); }
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); }