Esempio n. 1
0
        public void QueueWrite(InfluxDbEntry[] entries, int maxRetries, string database, string retentionPoliciy)
        {
            _logger.Debug("Queuing {0} entries for influx db upload: \r\n{1}",
                          entries.Length,
                          string.Join(Environment.NewLine, entries.Select(x => x.ToString())));
            _jobQueue.Add(new InfluxDbUploadQueueElement(entries, maxRetries, database, retentionPoliciy));

            if (_handle == null || !_handle.IsRunning || _handle.HasFailed)
            {
                if (_handle != null)
                {
                    _logger.Warn("Not running upload thread detected. Starting new one. Stopping old thread. Has failed: {0}", _handle.HasFailed);
                    _threadManager.StopThread(_handle);
                }
                else
                {
                    _logger.Info("Starting first time upload thread.");
                }

                var newThread = new InfluxDbUploadThread(_jobQueue, _retryJobQueue, _logger, this);
                _handle = _threadManager.Start(newThread);
            }

            if (_retryJob == null)
            {
                _logger.Info("Starting first time retry job.");
                _retryJob = new InfluxDbUploadRetryJob(_logger, _jobQueue, _retryJobQueue);
                _schedulingService.AddJob(_retryJob, new PollingPlan(TimeSpan.FromMinutes(1)));
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Kicks off the running of the schedule monitor.
        /// </summary>
        /// <param name="service">The schedulign service to use.</param>
        public void AddToScheduler(ISchedulingService service)
        {
            var jobName = typeof(SystemMonitor).Name;

            if (!service.HasJob(jobName))
            {
                service.AddJob(
                    typeof(SystemMonitor).Name,
                    ConfigurationManager.AppSettings[Constants.MonitorSchedule],
                    () => { RecordPerformance(); });
            }
        }