Exemplo n.º 1
0
        public RabbitMqModelContext(ConnectionContext connectionContext, IModel model, CancellationToken cancellationToken)
            : base(connectionContext)
        {
            _connectionContext = connectionContext;
            _model             = model;
            _cancellationToken = cancellationToken;

            if (_connectionContext.PublisherConfirmation)
            {
                _model.ConfirmSelect();
                _confirmations = new PendingConfirmationCollection();
            }

            _model.ContinuationTimeout = _connectionContext.ContinuationTimeout;

            _executor = new ChannelExecutor(1);

            _publisher = connectionContext.BatchSettings.Enabled
                ? (IPublisher) new BatchPublisher(_executor, model, connectionContext.BatchSettings, _confirmations)
                : new ImmediatePublisher(_executor, model, _confirmations);

            _model.ModelShutdown += OnModelShutdown;
            _model.BasicAcks     += OnAcknowledged;
            _model.BasicNacks    += OnNotAcknowledged;
            _model.BasicReturn   += OnBasicReturn;
        }
Exemplo n.º 2
0
 public PartitionCheckpointData(ReceiveSettings settings)
 {
     _executor = new ChannelExecutor(1);
     _receiver = new BatchCheckpointer(_executor, settings);
     _pending  = new PendingConfirmationCollection(settings.EventHubName);
 }
Exemplo n.º 3
0
 public PartitionCheckpointData(TopicPartition partition, IConsumer <TKey, TValue> consumer, ReceiveSettings settings)
 {
     _pending      = new PendingConfirmationCollection(partition);
     _executor     = new ChannelExecutor(1);
     _checkpointer = new BatchCheckpointer <TKey, TValue>(_executor, consumer, settings);
 }