StatelessAzureQueueReader BuildIntake(string name)
        {
            var queue     = _config.CreateQueueClient().GetQueueReference(name);
            var container = _config.CreateBlobClient().GetContainerReference(name);

            var poisonQueue = new Lazy <CloudQueue>(() =>
            {
                var queueReference = _config.CreateQueueClient().GetQueueReference(name + "-poison");
                queueReference.CreateIfNotExist();
                return(queueReference);
            }, LazyThreadSafetyMode.ExecutionAndPublication);

            var reader = new StatelessAzureQueueReader(name, queue, container, poisonQueue, _observer, _streamer, _queueVisibilityTimeout);

            return(reader);
        }
        StatelessAzureQueueReader BuildIntake(string name)
        {
            var queue = _config.CreateQueueClient().GetQueueReference(name);
            var container = _config.CreateBlobClient().GetContainerReference(name);

            var poisonQueue = new Lazy<CloudQueue>(() =>
                {
                    var queueReference = _config.CreateQueueClient().GetQueueReference(name + "-poison");
                    queueReference.CreateIfNotExist();
                    return queueReference;
                }, LazyThreadSafetyMode.ExecutionAndPublication);

            var reader = new StatelessAzureQueueReader(name, queue, container, poisonQueue,  _observer, _streamer, _queueVisibilityTimeout);

            return reader;
        }
        public void Setup()
        {
            _name = Guid.NewGuid().ToString().ToLowerInvariant();
            CloudStorageAccount cloudStorageAccount = ConnectionConfig.StorageAccount;

            _cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient();
            var queue = cloudStorageAccount.CreateCloudQueueClient().GetQueueReference(_name);
            var container = _cloudBlobClient.GetBlobDirectoryReference(_name);

            _blobContainer = _cloudBlobClient.GetContainerReference(_name);
            var poisonQueue = new Lazy<CloudQueue>(() =>
            {
                var queueReference = cloudStorageAccount.CreateCloudQueueClient().GetQueueReference(_name + "-poison");
                queueReference.CreateIfNotExist();
                return queueReference;
            }, LazyThreadSafetyMode.ExecutionAndPublication);
            _statelessReader = new StatelessAzureQueueReader("azure-read-write-message", queue, container, poisonQueue, TimeSpan.FromMinutes(1));
            _queueReader = new AzureQueueReader(new[] { _statelessReader }, x => TimeSpan.FromMinutes(x));
            _queueWriter = new StatelessAzureQueueWriter(_blobContainer, queue, "azure-read-write-message");
            _queueWriter.Init();
        }
Exemple #4
0
        static StatelessAzureQueueReader BuildIntake(IAzureStorageConfig cfg, string name,
                                                     TimeSpan visibilityTimeout = default(TimeSpan))
        {
            var timeout = visibilityTimeout == default(TimeSpan) ? TimeSpan.FromMinutes(5) : visibilityTimeout;

            var queue = cfg.CreateQueueClient().GetQueueReference(name);

            var container = cfg.CreateBlobClient().GetBlobDirectoryReference("queues-big").GetSubdirectory(name);

            var poisonQueue = new Lazy <CloudQueue>(() =>
            {
                var queueReference = cfg.CreateQueueClient().GetQueueReference(name + "-poison");
                queueReference.CreateIfNotExist();
                return(queueReference);
            }, LazyThreadSafetyMode.ExecutionAndPublication);

            var reader = new StatelessAzureQueueReader(name, queue, container, poisonQueue, timeout);

            reader.InitIfNeeded();
            return(reader);
        }
Exemple #5
0
        public void Setup()
        {
            _name = Guid.NewGuid().ToString().ToLowerInvariant();
            CloudStorageAccount cloudStorageAccount = ConnectionConfig.StorageAccount;

            _cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient();
            var queue     = cloudStorageAccount.CreateCloudQueueClient().GetQueueReference(_name);
            var container = _cloudBlobClient.GetBlobDirectoryReference(_name);

            _blobContainer = _cloudBlobClient.GetContainerReference(_name);
            var poisonQueue = new Lazy <CloudQueue>(() =>
            {
                var queueReference = cloudStorageAccount.CreateCloudQueueClient().GetQueueReference(_name + "-poison");
                queueReference.CreateIfNotExist();
                return(queueReference);
            }, LazyThreadSafetyMode.ExecutionAndPublication);

            _statelessReader = new StatelessAzureQueueReader("azure-read-write-message", queue, container, poisonQueue, TimeSpan.FromMinutes(1));
            _queueReader     = new AzureQueueReader(new[] { _statelessReader }, x => TimeSpan.FromMinutes(x));
            _queueWriter     = new StatelessAzureQueueWriter(_blobContainer, queue, "azure-read-write-message");
            _queueWriter.Init();
        }
 public AzurePartitionInbox(StatelessAzureQueueReader[] readers,
     Func<uint, TimeSpan> waiter)
 {
     _readers = readers;
     _waiter = waiter;
 }