public ParallelQueueHostedService(
            IParallelQueueConsumerFactory consumerFactory,
            IParallelQueueProducerFactory producerFactory,
            string queuqName,
            int timeout,
            TState state,
            ILogger <ParallelQueueHostedService <TEntity, TState> > logger)
        {
            if (consumerFactory == null)
            {
                throw new ArgumentNullException(nameof(consumerFactory));
            }
            if (producerFactory == null)
            {
                throw new ArgumentNullException(nameof(producerFactory));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            _consumerFactory = consumerFactory;
            _producerFactory = producerFactory;
            _queueName       = queuqName;
            _timeout         = timeout;
            _state           = state;
            _logger          = logger;
        }
示例#2
0
 public HostedService(
     IParallelQueueConsumerFactory consumerFactory,
     IParallelQueueProducerFactory producerFactory,
     string name,
     int timeout,
     TState state,
     ILogger <ParallelQueueHostedService <TEntity, TState> > logger)
     : base(consumerFactory, producerFactory, name, timeout, state, logger)
 {
 }
示例#3
0
        public ParallelQueueBuilder <TEntity, TState> AddHostedService(int timeout = 5, TState state = default)
        {
            Services.AddSingleton <IHostedService, HostedService>(sp =>
            {
                IParallelQueueConsumerFactory consumerFactory = sp.GetRequiredService <IParallelQueueConsumerFactory>();
                IParallelQueueProducerFactory producerFactory = sp.GetRequiredService <IParallelQueueProducerFactory>();
                ILogger <ParallelQueueHostedService <TEntity, TState> > logger = sp.GetRequiredService <ILogger <ParallelQueueHostedService <TEntity, TState> > >();
                return(new HostedService(consumerFactory, producerFactory, Name, timeout, state, logger));
            });

            return(this);
        }