public GpuMonitoringBackgroundService(ILogger <GpuMonitoringBackgroundService> logger, IOptions <Settings> settings, IMiner miner, INvidiaSmiExecutor smiExecutor, IGpuProcessMonitor <GpuProcessEvent> smiProcessor)
        {
            _logger       = logger ?? throw new ArgumentNullException(nameof(logger));
            _smiExecutor  = smiExecutor ?? throw new ArgumentNullException(nameof(smiExecutor));
            _settings     = settings.Value ?? throw new ArgumentNullException(nameof(settings.Value));
            _miner        = miner ?? throw new ArgumentNullException(nameof(miner));
            _smiProcessor = smiProcessor ?? throw new ArgumentNullException(nameof(smiProcessor));

            _logger.LogInformation("{methodName} {message} {pollInterval}", "Constructor",
                                   "settings.PollingIntervalInSeconds", _settings.PollingIntervalInSeconds);
            _logger.LogInformation("{methodName} {message}", "Constructor", "GpuMonitoringBackgroundService Created");

            _smiProcessor.GpuActivityNoticed += CheckActivity;
        }
Esempio n. 2
0
 public GpuMonitor(ILogger <GpuMonitor> logger, IEnumerable <IGpuMonitorOutputParser> outputParsers, INvidiaSmiExecutor smiExecutor)
 {
     _logger        = logger ?? throw new ArgumentNullException(nameof(logger));
     _outputParsers = outputParsers ?? throw new ArgumentNullException(nameof(outputParsers));
     _smiExecutor   = smiExecutor ?? throw new ArgumentNullException(nameof(smiExecutor));
 }