Example #1
0
        static void Main(string[] args)
        {
            var config = new PingMonitorJobConfiguration()
            {
                BatchInterval        = TimeSpan.FromMinutes(30),
                BatchSize            = 20,
                PingTimeout          = TimeSpan.FromSeconds(4),
                IntervalBetweenPings = TimeSpan.FromSeconds(5),
                TargetUrl            = "www.seznam.cz"
            };

            var rc = HostFactory.Run(x =>
            {
                x.Service <PingMonitorJob>(s =>
                {
                    s.ConstructUsing(name => new PingMonitorJob(config));
                    s.WhenStarted(tc => tc.Start());
                    s.WhenStopped(tc => tc.Stop());
                });
                x.RunAsLocalSystem();

                x.SetDescription("PingMonitor");
                x.SetDisplayName("PingMonitor");
                x.SetServiceName("PingMonitor");
            });

            var exitCode = (int)Convert.ChangeType(rc, rc.GetTypeCode());

            Environment.ExitCode = exitCode;
        }
Example #2
0
        public PingMonitorJob(PingMonitorJobConfiguration config)
        {
            _config = config;

            _timer = new Timer(_config.BatchInterval.TotalMilliseconds)
            {
                AutoReset = true
            };
            _timer.Elapsed += OnTimer;
        }