/// <summary> /// Initializes a new instance of the <see cref="PullConnectorsService"/> class. /// </summary> /// <param name="pullConnectors">Actual <see cref="IPullConnectors"/>.</param> /// <param name="timers"><see cref="ITimers"/> for scheduling work.</param> /// <param name="tagDataPointCoordinator"><see cref="ITagDataPointCoordinator"/> for coordinator datapoints.</param> /// <param name="logger"><see cref="ILogger"/> for logging.</param> public PullConnectorsService( IPullConnectors pullConnectors, ITimers timers, ITagDataPointCoordinator tagDataPointCoordinator, ILogger logger) { _pullConnectors = pullConnectors; _timers = timers; _tagDataPointCoordinator = tagDataPointCoordinator; _logger = logger; }
/// <summary> /// Initializes a new instance of the <see cref="DataPointsStatePullers"/> class. /// </summary> /// <param name="configuration">The <see cref="DataPointsStatePullersConfiguration"/>.</param> /// <param name="processors"><see cref="IDataPointProcessors"/> for processing.</param> /// <param name="timers"><see cref="ITimers"/> for scheduling.</param> /// <param name="logger"><see cref="ILogger"/> for logging.</param> public DataPointsStatePullers( DataPointsStatePullersConfiguration configuration, IDataPointProcessors processors, ITimers timers, ILogger logger) { _timers = timers; _configuration = configuration; _processors = processors; _logger = logger; }
/// <summary> /// Initializes a new instance of the <see cref="DataPointsStatePuller"/> class. /// </summary> /// <param name="endPoint"><see cref="DataPointsStateEndPoint"/> to pull from.</param> /// <param name="processors"><see cref="IDataPointProcessors"/> to involve when <see cref="DataPoint">data points</see> are pulled.</param> /// <param name="timers"><see cref="ITimers"/> for scheduling.</param> /// <param name="logger"><see cref="ILogger"/> for logging.</param> public DataPointsStatePuller( DataPointsStateEndPoint endPoint, IDataPointProcessors processors, ITimers timers, ILogger logger) { var channel = new Channel(endPoint.Target, ChannelCredentials.Insecure); _client = new DataPointsStateClient(channel); timers.Every(endPoint.Interval, async() => await Pull().ConfigureAwait(false)); _processors = processors; _logger = logger; _endPoint = endPoint; }
public Processor( IList <IFileParser> fileParsers, IProcessors processorsConfig, ITimers timersConfig, IMaintenance maintenanceConfig, IParser parser, IPersister persister, ILogger logger, IDirectory directory, IPerformance performance ) { // save the logger _logger = logger ?? throw new ArgumentNullException(nameof(logger)); const string directoryCounterName = "Processor: Average time processing Directories"; const string fileCounterName = "Processor: Average time processing Files"; const string parserCounterName = "Processor: Average time parsing files/folders"; // Create the various processors, they will not start doing anything just yet // or at least, they shouldn't var directoriesCounter = new ProcessorPerformanceCounter(performance, directoryCounterName, logger); var filesCounter = new ProcessorPerformanceCounter(performance, fileCounterName, logger); var parserCounter = new ProcessorPerformanceCounter(performance, parserCounterName, logger); _eventTimer = new ProcessorTimer( new List <IProcessor> { new Folders(directoriesCounter, processorsConfig.UpdatesFolderPerEvent, persister, logger, directory, timersConfig.EventsMaxWaitTransactionMs), new Files(filesCounter, processorsConfig.UpdatesFilesPerEvent, fileParsers, processorsConfig.IgnoreFiles, persister, logger, directory, timersConfig.EventsMaxWaitTransactionMs) }, _logger, processorsConfig.EventsProcessorMs); _maintenanceTimer = new ProcessorTimer( new List <IProcessor> { new Maintenance(maintenanceConfig.Active, parser, persister, logger) }, _logger, (int)TimeSpan.FromMinutes(processorsConfig.MaintenanceProcessorMinutes).TotalMilliseconds); _parserTimer = new ProcessorTimer( new List <IProcessor> { new Parser(parserCounter, parser, logger) }, _logger, (int)TimeSpan.FromMinutes(processorsConfig.ParserProcessorMinutes).TotalMilliseconds); }
public static IPromise <T> AddTimeout <T>(IPromise <T> promise, ITimers timers, float timeout) { var result = new Deferred <T>(); var status = EStatus.Pending; var timeoutPromise = timers.Wait(timeout); promise.Done(r => { if (status == EStatus.Pending) { status = EStatus.Resolved; result.Resolve(r); } }); promise.Fail(() => { if (status == EStatus.Pending) { status = EStatus.Rejected; result.Reject(); } }); timeoutPromise.Done(() => { if (status == EStatus.Pending) { status = EStatus.Rejected; result.Reject(); } }); return(result); }
private void Awake() { Instance = this; }