Exemple #1
0
        public AsyncQueue(IQueueSerializer queueSerializer, string connectionString, string queueName, ILogger <AsyncQueue <T> > logger)
        {
            if (queueSerializer == null)
            {
                throw new ArgumentNullException(nameof(queueSerializer));
            }
            if (String.IsNullOrWhiteSpace(connectionString))
            {
                throw new ArgumentNullException(nameof(connectionString));
            }
            if (String.IsNullOrWhiteSpace(queueName))
            {
                throw new ArgumentNullException(nameof(queueName));
            }

            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
            CloudQueueClient    queueClient    = storageAccount.CreateCloudQueueClient();

            queueClient.DefaultRequestOptions.RetryPolicy = new ExponentialRetry(TimeSpan.FromSeconds(120), 3);
            _queue      = queueClient.GetQueueReference(queueName);
            _serializer = queueSerializer;
            _queueName  = queueName;
            _logger     = logger;

            _logger?.LogTrace("AsyncQueue: created for queue {QUEUENAME}", queueName);
        }
Exemple #2
0
 public AzureQueueFactory(IQueueFactory queueFactory,
                          IQueueSerializer queueSerializer,
                          IConnectionStringProvider connectionStringProvider)
 {
     _queueFactory             = queueFactory;
     _queueSerializer          = queueSerializer;
     _connectionStringProvider = connectionStringProvider;
 }
Exemple #3
0
 public QueueFactory(IQueueSerializer queueSerializer,
                     ILoggerFactory loggerFactory,
                     IConnectionStringProvider connectionStringProvider,
                     IAzureSettings azureSettings)
 {
     _queueSerializer          = queueSerializer ?? throw new ArgumentNullException(nameof(queueSerializer));
     _loggerFactory            = loggerFactory;
     _connectionStringProvider = connectionStringProvider;
     _azureSettings            = azureSettings;
 }
Exemple #4
0
 public LargeMessageQueueFactory(
     IQueueFactory queueFactory,
     IBlobRepositoryFactory blobRepositoryFactory,
     IQueueSerializer serializer,
     ILoggerFactory loggerFactory)
 {
     _queueFactory          = queueFactory;
     _blobRepositoryFactory = blobRepositoryFactory;
     _serializer            = serializer;
     _loggerFactory         = loggerFactory;
 }
Exemple #5
0
        public IAsyncQueue <T> CreateAsyncQueue <T>(string queueName, IQueueSerializer queueSerializer) where T : class
        {
            if (_azureSettings.CreateIfNotExists)
            {
                throw new InvalidOperationException("Creation of resources can only be done through an asynchronous factory");
            }

            string connectionString = _connectionStringProvider.Get <IAsyncQueue <T> >(queueName);

            return(new AsyncQueue <T>(queueSerializer, connectionString, queueName, _loggerFactory.CreateLogger <AsyncQueue <T> >()));
        }
Exemple #6
0
        public LargeMessageQueue(
            IQueueSerializer serializer,
            IAsyncQueue <LargeMessageReference> referenceQueue,
            IAsyncBlockBlobRepository blobRepository,
            ILogger <LargeMessageQueue <T> > logger,
            ILargeMessageQueueErrorHandler errorHandler)
        {
            _serializer     = serializer;
            _referenceQueue = referenceQueue;
            _blobRepository = blobRepository;
            _logger         = logger;
            _errorHandler   = errorHandler;

            _logger.LogTrace("LargeMessageQueue<T>: constructing");
        }
Exemple #7
0
        public RabbitQueueManager(IQueueSerializer serializer, IOptions <RabbitOptions> options, ILoggerFactory logFactory)
        {
            var factory = new ConnectionFactory
            {
                DispatchConsumersAsync = options.Value.DispatchConsumersAsync,
                HostName    = options.Value.Host,
                Password    = options.Value.Password,
                Port        = options.Value.Port,
                UserName    = options.Value.User,
                VirtualHost = options.Value.VirtualHost,
            };

            this.Connection = factory.CreateConnection();
            this.Options    = options.Value;
            this.LogFactory = logFactory;
            this.Serializer = serializer;
        }
Exemple #8
0
        public RabbitQueueTopic(
            IConnection connection,
            IQueueSerializer serializer,
            ILogger <T> logger,
            string queue = default,
            string route = default)
            : base(serializer, logger)
        {
            this.channel = connection.CreateModel();
            this.subject = new Subject <T>();

            this.Connection = connection;
            this.QueueName  = queue;
            this.Route      = string.IsNullOrWhiteSpace(route) ? string.Empty : route;

            this.Bind();
        }
        public QueueLoggerFactory(
            IRuntimeEnvironment runtimeEnvironment,
            IApplicationResourceSettingNameProvider nameProvider,
            IConfiguration configuration,
            IQueueSerializer queueSerializer,
            IQueueLoggerExtension queueLoggerExtension,
            ICorrelationIdProvider correlationIdProvider,
            LogLevelEnum defaultMinimumLogLevel,
            IFullyQualifiedName defaultLoggerSource)
        {
            _runtimeEnvironment = runtimeEnvironment;
            _queueSerializer = queueSerializer;
            _queueLoggerExtension = queueLoggerExtension;
            _correlationIdProvider = correlationIdProvider;
            _defaultMinimumLogLevel = defaultMinimumLogLevel;
            _defaultLoggerSource = defaultLoggerSource;

            _queueName = configuration[nameProvider.SettingName(ApplicationSupportComponentIdentity, "logger-queue")];
            _storageAccountConnectionString = configuration[nameProvider.StorageAccountConnectionString(ApplicationSupportComponentIdentity)];
        }
 public LocalQueueListener(Queue <string> queue, Func <T, Task> callback, IQueueSerializer serializer)
 {
     this.queue      = queue;
     this.serializer = serializer;
     this.MessageReceivedCallback = callback;
 }
 public LocalQueueListener(Queue <string> queue, IQueueSerializer serializer) : this(queue, null, serializer)
 {
 }
Exemple #12
0
 public IAsyncQueue <T> CreateAsyncQueue <T>(string queueName, IQueueSerializer queueSerializer) where T : class
 {
     return(_queueFactory.CreateAsyncQueue <T>(queueName, queueSerializer));
 }
 protected QueuePattern(IQueueSerializer serializer, ILogger <T> logger)
 {
     this.Logger     = logger;
     this.Serializer = serializer;
 }
 public LocalQueueWriter(Queue <string> queue, IQueueSerializer serializer)
 {
     this.queue      = queue;
     this.serializer = serializer;
 }
        public async Task <IAsyncQueue <T> > CreateAsyncQueueAsync <T>(string queueName, IQueueSerializer queueSerializer) where T : class
        {
            string connectionString = await _connectionStringProvider.GetAsync <IAsyncQueue <T> >(queueName);

            IAsyncQueue <T> result = new AsyncQueue <T>(queueSerializer, connectionString, queueName, _loggerFactory.CreateLogger <AsyncQueue <T> >());

            if (_azureSettings.CreateIfNotExists)
            {
                await result.GetCloudQueue().CreateIfNotExistsAsync();
            }
            return(result);
        }
Exemple #16
0
 public RabbitQueueTopic(IConnection connection, IQueueSerializer serializer, ILogger <T> logger)
     : this(connection, serializer, logger, typeof(T).GetQueueName(), typeof(T).GetRouteName())
 {
 }