예제 #1
0
        private PingBatch ExecuteBatch()
        {
            PingBatch batch = new PingBatch()
            {
                MachineName            = Environment.MachineName,
                PingTimeoutMs          = (int)_config.PingTimeout.TotalMilliseconds,
                IntervalBetweenPingsMs = (int)_config.IntervalBetweenPings.TotalMilliseconds,
                TargetUrl = _config.TargetUrl,
                TimeStamp = DateTime.Now
            };

            for (int i = 0; i < _config.BatchSize; i++)
            {
                var ping       = new System.Net.NetworkInformation.Ping();
                var pingResult = ping.Send(_config.TargetUrl, (int)_config.PingTimeout.TotalMilliseconds);
                Console.WriteLine(pingResult.Status.ToString() + " - " + pingResult.RoundtripTime);

                PingResult result = new PingResult()
                {
                    Status        = (PingResultStatus)pingResult.Status,
                    RoundtripTime = pingResult.RoundtripTime
                };

                batch.Results.Add(result);

                System.Threading.Thread.Sleep(_config.IntervalBetweenPings);
            }

            return(batch);
        }
예제 #2
0
 private int StoreResult(PingBatch batch)
 {
     using (PingContext context = new PingContext())
     {
         context.Batches.Add(batch);
         return(context.SaveChanges());
     }
 }
예제 #3
0
        private void RunJob()
        {
            PingBatch batch = ExecuteBatch();

            Console.WriteLine("Batch finished");
            StoreResult(batch);
            Console.WriteLine("Batch stored");
        }