예제 #1
0
 public ReplicatingConsumerFactory(DittoSettings appSettings, ILogger logger)
 {
     _appSettings           = appSettings ?? throw new ArgumentNullException(nameof(appSettings));
     _logger                = logger ?? throw new ArgumentNullException(nameof(logger));
     _destinationConnection = new Lazy <IEventStoreConnection>(()
                                                               => ConnectionFactory.CreateEventStoreConnection(_logger, _appSettings.DestinationEventStoreConnectionString, "Ditto:Destination"));
 }
예제 #2
0
        public ReplicatingConsumer(IAmazonKinesis kinesis, KinesisSettings kinesisSettings, DittoSettings dittoSettings, ILogger logger, string streamName, string groupName)
        {
            _kinesis         = kinesis ?? throw new ArgumentNullException(nameof(kinesis));
            _kinesisSettings = kinesisSettings ?? throw new ArgumentNullException(nameof(kinesisSettings));
            _dittoSettings   = dittoSettings ?? throw new ArgumentNullException(nameof(dittoSettings));
            _logger          = logger ?? throw new ArgumentNullException(nameof(logger));

            StreamName = streamName ?? throw new ArgumentNullException(nameof(streamName));
            GroupName  = groupName ?? throw new ArgumentNullException(nameof(groupName));
        }
예제 #3
0
        public ReplicatingConsumer(
            IEventStoreConnection connection, Serilog.ILogger logger, DittoSettings settings, string streamName, string groupName)
        {
            _connection = connection ?? throw new ArgumentNullException(nameof(connection));
            _logger     = logger ?? throw new ArgumentNullException(nameof(logger));
            _settings   = settings ?? throw new ArgumentNullException(nameof(settings));
            StreamName  = streamName ?? throw new ArgumentNullException(nameof(streamName));
            GroupName   = groupName ?? throw new ArgumentNullException(nameof(groupName));

            if (_settings.TimeToLive.GetValueOrDefault().TotalMilliseconds > 0)
            {
                _streamMetadata = StreamMetadata.Build().SetMaxAge(_settings.TimeToLive.Value);
                _ttl            = true;
            }
        }
예제 #4
0
 private static ICompetingConsumer CreateConsumer(
     IServiceProvider provider,
     DittoSettings settings,
     KinesisSettings destinationSettings,
     string streamName,
     string groupName)
 {
     return(new ReplicatingConsumer(
                provider.GetRequiredService <IAmazonKinesis>(),
                destinationSettings,
                settings,
                provider.GetRequiredService <ILogger>(),
                streamName,
                groupName
                ));
 }