Exemplo n.º 1
0
        /// <summary>
        /// Отправить информацию о перегрузке
        /// </summary>
        /// <param name="value"></param>
        public static void SendOverloadInfo(float value)
        {
            var message = new CpuMessage
            {
                DateTime = DateTime.Now.ToString("hh:mm:ss"),
                Usage    = value
            };

            Send(JsonConvert.SerializeObject(message));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Collects cpu usage stats and forwards to the <see cref="CollectMessage.Receivers"/>
        /// </summary>
        /// <param name="message"><see cref="CollectMessage"/></param>
        private void CollectStats(CollectMessage message)
        {
            _output.Tell(new SimpleMessage($"CpuCollectionActor received collect dated {message.CollectUtc:dd/MM/yyyy HH:mm:ss}"));

            var processorSearcher = new ManagementObjectSearcher(@"root\CIMV2",
                                                                 "SELECT * FROM Win32_PerfFormattedData_Counters_ProcessorInformation");

            var obj = processorSearcher.Get().Cast <ManagementObject>().FirstOrDefault();

            if (obj != null)
            {
                var percent = double.Parse(obj["PercentProcessorTime"].ToString());
                var msg     = new CpuMessage(percent / 100);
                foreach (var r in message.Receivers)
                {
                    r.Tell(msg);
                }
            }
        }