public IEventFeedsRunner RunEventFeeding()
 {
     return(eventFeedFactory
            .WithOffsetType <string>()
            .WithEventType(BladesBuilder.New(eventSource, eventConsumer, logger)
                           .WithBlade($"{indexerSettings.EventFeedKey}_Blade0", delay: TimeSpan.FromMinutes(1))
                           .WithBlade($"{indexerSettings.EventFeedKey}_Blade1", delay: TimeSpan.FromMinutes(15)))
            .WithOffsetInterpreter(offsetInterpreter)
            .WithOffsetStorageFactory(bladeId => new RtqElasticsearchOffsetStorage(elasticsearchClient, offsetInterpreter, bladeId.BladeKey))
            .RunFeeds(delayBetweenIterations: TimeSpan.FromMinutes(1)));
 }
Esempio n. 2
0
        private IEventFeedsRunner RunEventFeeds(TimeSpan[] bladeDelays)
        {
            IBladesBuilder <long?> bladesBuilder = BladesBuilder.New(eventSource, eventConsumer, new SilentLog());

            for (var i = 0; i < bladeDelays.Length; i++)
            {
                bladesBuilder = bladesBuilder.WithBlade($"Blade_{i}", bladeDelays[i]);
            }

            var eventFeedsRunner = eventFeedFactory.WithOffsetType <long?>()
                                   .WithEventType(bladesBuilder)
                                   .WithOffsetStorageFactory(bladeId => new InMemoryOffsetStorage <long?>())
                                   .RunFeeds(delayBetweenIterations: TimeSpan.FromMilliseconds(20), cancellationToken: CancellationToken.None);

            return(eventFeedsRunner);
        }
        public (/*[NotNull]*/ IEventFeedsRunner, /*[NotNull]*/ RtqTaskCounterStateManager) RunEventFeeding(CancellationToken cancellationToken)
        {
            var stateManager  = new RtqTaskCounterStateManager(logger, serializer, taskDataRegistry, stateStorage, settings, offsetInterpreter, perfGraphiteReporter);
            var eventConsumer = new RtqTaskCounterEventConsumer(stateManager, handleTasksMetaStorage, perfGraphiteReporter);
            IBladesBuilder <string> bladesBuilder = BladesBuilder.New(eventSource, eventConsumer, logger);

            foreach (var bladeId in stateManager.Blades)
            {
                bladesBuilder = bladesBuilder.WithBlade(bladeId.BladeKey, bladeId.Delay);
            }
            var eventFeedsRunner = eventFeedFactory
                                   .WithOffsetType <string>()
                                   .WithEventType(bladesBuilder)
                                   .WithOffsetInterpreter(offsetInterpreter)
                                   .WithOffsetStorageFactory(bladeId => stateManager.CreateOffsetStorage(bladeId))
                                   .WithSingleLeaderElectionKey(stateManager.CompositeFeedKey)
                                   .RunFeeds(settings.DelayBetweenEventFeedingIterations, cancellationToken);

            return(eventFeedsRunner, stateManager);
        }