public AmazonSqsClientContext(ConnectionContext connectionContext, IAmazonSQS amazonSqs, IAmazonSimpleNotificationService amazonSns,
                                      CancellationToken cancellationToken)
            : base(connectionContext)
        {
            _connectionContext = connectionContext;
            _amazonSqs         = amazonSqs;
            _amazonSns         = amazonSns;
            _cancellationToken = cancellationToken;

            _queueCache = new QueueCache(amazonSqs, cancellationToken);
            _topicCache = new TopicCache(amazonSns);
        }
        public AmazonSqsClientContext(ConnectionContext connectionContext, IAmazonSQS sqsClient, IAmazonSimpleNotificationService snsClient,
                                      CancellationToken cancellationToken)
            : base(connectionContext)
        {
            _connectionContext = connectionContext;
            _sqsClient         = sqsClient;
            _snsClient         = snsClient;
            _cancellationToken = cancellationToken;

            _queueCache = new QueueCache(sqsClient, cancellationToken);
            _topicCache = new TopicCache(snsClient, cancellationToken);
        }
        public AmazonSqsClientContext(ConnectionContext connectionContext, IAmazonSQS amazonSqs, IAmazonSimpleNotificationService amazonSns,
                                      CancellationToken cancellationToken)
            : base(connectionContext)
        {
            _connectionContext = connectionContext;
            _amazonSqs         = amazonSqs;
            _amazonSns         = amazonSns;
            _cancellationToken = cancellationToken;

            _queueCache = new QueueCache(amazonSqs);
            _topicCache = new TopicCache(amazonSns);

            _taskScheduler = new LimitedConcurrencyLevelTaskScheduler(1);
        }