public MqSender( string exchange, IReadOnlyDictionary <string, string> topics, IConnection connection, IEventStringSerializer eventStringSerializer, IMessageSerializer messageSerializer, BatchOperator <IEvent> .Factory batchOperatorFactory, IBatchOperatorContainer batchOperatorContainer, ILogger <MqSender> logger, IOptions <ClaptrapServerOptions> options) { _exchange = exchange; _topics = topics; _connection = connection; _eventStringSerializer = eventStringSerializer; _messageSerializer = messageSerializer; _logger = logger; _options = options; var operatorKey = new BatchOperatorKey() .With(nameof(MqSender)) .With(exchange); _batchOperator = (IBatchOperator <IEvent>)batchOperatorContainer.GetOrAdd( operatorKey, () => batchOperatorFactory.Invoke( new BatchOperatorOptions <IEvent> { BufferTime = TimeSpan.FromMilliseconds(10), BufferCount = 100, DoManyFunc = (events, cacheData) => SendMany(events) })); }
public ClaptrapHandler(IActorProxyFactory actorProxyFactory, IClaptrapDesignStore claptrapDesignStore, IEventSerializer <EventJsonModel> eventSerializer, IEventStringSerializer eventStringSerializer) { _actorProxyFactory = actorProxyFactory; _eventSerializer = eventSerializer; _eventStringSerializer = eventStringSerializer; _minionTypeCodes = claptrapDesignStore.Where(x => x.IsMinion()) .GroupBy(x => x.ClaptrapMasterDesign !.ClaptrapTypeCode) .ToDictionary(x => x.Key, x => x.Select(a => a.ClaptrapTypeCode)); }
public MQSubscriberManager( ILogger <MQSubscriberManager> logger, IConnectionManager connectionManager, IEventStringSerializer eventStringSerializer, IClaptrapDesignStore claptrapDesignStore, IMessageSerializer messageSerializer, IMinionLocator minionLocator) { _logger = logger; _connectionManager = connectionManager; _eventStringSerializer = eventStringSerializer; _claptrapDesignStore = claptrapDesignStore; _messageSerializer = messageSerializer; _minionLocator = minionLocator; }