Beispiel #1
0
 private static void AddOrUpdateBackgroundjob(MonitoringTask monitoringTask)
 {
     RecurringJob.AddOrUpdate <ICheckUrlService>(
         recurringJobId: monitoringTask.RecurringJobId,
         methodCall: s => s.Check(monitoringTask.Id),
         cronExpression: "0/" + monitoringTask.IntervalSeconds + " * * * * *");
 }
        public void TestMonitorTask()
        {
            var watcher = System.Diagnostics.Stopwatch.StartNew();
            MonitorConfiguration conf = MonitorConfiguration.Load(@"..\..\..\EnhancedMonitoring\Configuration\EnhancedMonitoringProviderConfig.xml");

            conf.LogFilePath = @"C:\ProgramData\Enhanced Monitoring\log\monitor.log";
            conf.LogLevel    = "Verbose";
            Logger.Init(conf);
            MonitoringTask task = MonitoringTask.CreateInstance(conf as MonitorConfiguration);

            task.Run();
            Console.WriteLine(String.Format("Elapsed: {0}ms", watcher.ElapsedMilliseconds));
        }
        private void RunMonitoringTask(MonitorConfiguration conf)
        {
            Logger.Info("Start monitoring task");
            DateTime       start = DateTime.Now;
            MonitoringTask task  = MonitoringTask.CreateInstance(conf);

            task.Run();
            Logger.Info("Monitoring task finished");
            TimeSpan elapsed = DateTime.Now.Subtract(start);
            //Substract elapsed time to get the task running exaclty aliging to refresh rate.
            long interval   = Math.Max(conf.RefreshRate, MIN_REFRESH_RATE) * 1000;
            long timeToWait = interval - (long)elapsed.TotalMilliseconds % interval;

            //Trigger next task
            timer.Change(timeToWait, Timeout.Infinite);
        }
Beispiel #4
0
        public void AddMonitoringTask(MonitoringTaskDto dto)
        {
            var userId = _userService.GetUser()?.Id;

            if (!string.IsNullOrEmpty(userId))
            {
                var recurringJobId = Guid.NewGuid().ToString();

                var monitoringTask = new MonitoringTask(
                    userId: userId,
                    recurringJobId: recurringJobId,
                    name: dto.Name,
                    url: dto.Url,
                    intervalSeconds: dto.IntervalSeconds,
                    enabled: dto.Enabled);

                _context.MonitoringTasks.Add(monitoringTask);
                _unitOfWork.SaveChanges();

                AddOrUpdateBackgroundjob(monitoringTask);
                _unitOfWork.SaveChanges();
            }
        }