예제 #1
0
        private AmazonSQSClient InitializeQueue()
        {
            var client = new AmazonSQSClient(Utility.GetRegionEndpoint());

            ListQueuesRequest listQueuesRequest = new ListQueuesRequest
            {
                QueueNamePrefix = QueueName
            };
            var  listQueuesResponse = client.ListQueues(listQueuesRequest);
            bool found = listQueuesResponse.ListQueuesResult.QueueUrls.Any(s => s == QueueName);

            if (found == false)
            {
                var createQueueResponse = client.CreateQueue(new CreateQueueRequest
                {
                    QueueName = QueueName
                });
                QueueUrl = createQueueResponse.CreateQueueResult.QueueUrl;
            }
            else
            {
                QueueUrl = client.GetQueueUrl(
                    new GetQueueUrlRequest
                {
                    QueueName = _queueName
                }
                    ).GetQueueUrlResult.QueueUrl;
            }
            return(client);
        }
예제 #2
0
        private static string FindBidQueueUrl(string auctionCode, AmazonSQSClient sqs)
        {
            var listQueuesRequest  = new ListQueuesRequest();
            var listQueuesResponse = sqs.ListQueues(listQueuesRequest);

            return(listQueuesResponse.QueueUrls?.FirstOrDefault(queueUrl => queueUrl.EndsWith(auctionCode + "_Bid")));
        }
 /// <summary>Check to see if our queue already exists in SQS</summary>
 /// <returns>True if the queue already exists</returns>
 private bool DoesQueueExist()
 {
     Project.Log(Level.Info, "Checking to see if queue exists...");
     using (Client) {
         try {
             var request  = new ListQueuesRequest();
             var response = Client.ListQueues(request);
             if (response.IsSetListQueuesResult())
             {
                 var result = response.ListQueuesResult;
                 foreach (var queueUrl in result.QueueUrl)
                 {
                     if (queueUrl.Contains(QueueName))
                     {
                         Project.Log(Level.Info, "Queue '{0}' exists with URL: {1}", QueueName, queueUrl);
                         return(true);
                     }
                 }
             }
         } catch (AmazonS3Exception ex) {
             ShowError(ex);
         }
     }
     Project.Log(Level.Info, "Queue '{0}' doesn't exist!", QueueName);
     return(false);
 }
        public async Task <ListQueuesResponse> ListQueuesAsync(string prefix = "", int maxResults = 5000, string marker = null, bool includeMetadata = false)
        {
            var request  = new ListQueuesRequest(_account, prefix, maxResults, marker, includeMetadata);
            var response = await request.ExecuteAsync();

            return(response.Payload);
        }
        private static IDictionary <string, string> ConvertListQueues(ListQueuesRequest request)
        {
            IDictionary <string, string> dictionary = new Dictionary <string, string>();

            dictionary["Action"] = "ListQueues";
            if (request.IsSetQueueNamePrefix())
            {
                dictionary["QueueNamePrefix"] = request.QueueNamePrefix;
            }
            List <Amazon.SQS.Model.Attribute> list = request.Attribute;
            int num = 1;

            foreach (Amazon.SQS.Model.Attribute attribute in list)
            {
                if (attribute.IsSetName())
                {
                    dictionary[string.Concat(new object[] { "Attribute", ".", num, ".", "Name" })] = attribute.Name;
                }
                if (attribute.IsSetValue())
                {
                    dictionary[string.Concat(new object[] { "Attribute", ".", num, ".", "Value" })] = attribute.Value;
                }
                num++;
            }
            return(dictionary);
        }
예제 #6
0
        public List <Queue> GetQueueRepository()
        {
            List <Queue> listOfQueues  = new List <Queue>();
            var          queueRequest  = new ListQueuesRequest();
            var          queueResponse = sqsClient.ListQueuesAsync(queueRequest);

            foreach (var queue in queueResponse.Result.QueueUrls)
            {
                var a = sqsClient.GetQueueAttributesAsync(new GetQueueAttributesRequest
                {
                    QueueUrl       = queue,
                    AttributeNames = new List <string>()
                    {
                        "All"
                    }
                });

                listOfQueues.Add(new Queue
                {
                    QueueName = queue.Substring(queue.LastIndexOf('/') + 1),
                    CountOfAvailableMessages = GetCountOfMessages(queue),
                    CountOfMessagesInFlight  = GetCountOfMessagesInFlight(queue),
                    CreatedDate = GetQueueCreatedDate(queue),
                    messages    = new MessageRepository(queue).messageRepository
                }
                                 );
            }
            return(listOfQueues);
        }
예제 #7
0
        private bool checkQueueExist()
        {
            try
            {
                bool exist = false;
                listQueues = new ListQueuesRequest();
                var lista = sqsClient.ListQueues(listQueues);

                List <String> colas = new List <String>();
                foreach (var urls in lista.QueueUrls)
                {
                    String[] array  = urls.Split('/');
                    String   nombre = array[array.Length - 1];
                    if (nombre == queue)
                    {
                        url   = urls.Replace(array[array.Length - 1], "");
                        exist = true;
                    }
                }

                return(exist);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message);
                return(false);
            }
        }
예제 #8
0
        private void EnsureQueueExists()
        {
            if (queueExists.HasValue && queueExists.Value)
            {
                return;
            }
            else if (queueExists.HasValue && !queueExists.Value)
            {
                throw new QueueException("Queue is not available or could not be created.");
            }

            var lqr    = new ListQueuesRequest();
            var queues = client.ListQueues(lqr);

            if (queues.QueueUrls != null)
            {
                foreach (string queue in queues.QueueUrls)
                {
                    if (queue == this.queueUrl)
                    {
                        queueExists = true;
                        return;
                    }
                }
            }

            queueExists = false;
        }
예제 #9
0
        public void CreateTwoQueues_WithDifferentQueueNameCapitalisations_ShouldCreateTwoQueues()
        {
            const string queueName1 = "QUEUE-NAME";
            const string queueName2 = "queue-name";

            var sqsRequest1 = new CreateQueueRequest(queueName1);
            var sqsRequest2 = new CreateQueueRequest(queueName2);

            var response1 = _sqs.CreateQueue(sqsRequest1);
            var response2 = _sqs.CreateQueue(sqsRequest2);

            Assert.True(response1.HttpStatusCode == System.Net.HttpStatusCode.OK);
            Assert.EndsWith(queueName1, response1.QueueUrl);

            Assert.True(response2.HttpStatusCode == System.Net.HttpStatusCode.OK);
            Assert.EndsWith(queueName2, response2.QueueUrl);

            // Find the the queue in the list of queues
            ListQueuesRequest  listQueuesRequest  = new ListQueuesRequest();
            ListQueuesResponse listQueuesResponse = _sqs.ListQueues(listQueuesRequest);

            var createdQueue = listQueuesResponse.QueueUrls.Where(q => q.EndsWith(queueName1) || q.EndsWith(queueName2));

            Assert.True(createdQueue.Count() == 2);

            // Cleanup
            SqsQueueUtils.DeleteQueue(response1.QueueUrl, _sqs);
            SqsQueueUtils.DeleteQueue(response2.QueueUrl, _sqs);
        }
예제 #10
0
        /**
         * Convert ListQueuesRequest to name value pairs
         */
        private static IDictionary <string, string> ConvertListQueues(ListQueuesRequest request)
        {
            IDictionary <string, string> parameters = new Dictionary <string, string>();

            parameters["Action"] = "ListQueues";
            if (request.IsSetQueueNamePrefix())
            {
                parameters["QueueNamePrefix"] = request.QueueNamePrefix;
            }
            List <Attribute> listQueuesRequestAttributeList = request.Attribute;
            int listQueuesRequestAttributeListIndex         = 1;

            foreach (Attribute listQueuesRequestAttribute in listQueuesRequestAttributeList)
            {
                if (listQueuesRequestAttribute.IsSetName())
                {
                    parameters[String.Concat("Attribute", ".", listQueuesRequestAttributeListIndex, ".", "Name")] = listQueuesRequestAttribute.Name;
                }
                if (listQueuesRequestAttribute.IsSetValue())
                {
                    parameters[String.Concat("Attribute", ".", listQueuesRequestAttributeListIndex, ".", "Value")] = listQueuesRequestAttribute.Value;
                }

                listQueuesRequestAttributeListIndex++;
            }

            return(parameters);
        }
예제 #11
0
        public List <string> GetAvailableQueues()
        {
            ListQueuesRequest  listQueueRequest  = new ListQueuesRequest();
            ListQueuesResponse listQueueResponse = this.sqsClient.ListQueues(listQueueRequest);

            return(listQueueResponse.QueueUrls);
        }
예제 #12
0
        /// <summary>
        /// Initiates the asynchronous execution of the ListQueues operation.
        /// <seealso cref="Amazon.SQS.IAmazonSQS"/>
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the ListQueues operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public Task <ListQueuesResponse> ListQueuesAsync(ListQueuesRequest request, CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller   = new ListQueuesRequestMarshaller();
            var unmarshaller = ListQueuesResponseUnmarshaller.Instance;

            return(Invoke <IRequest, ListQueuesRequest, ListQueuesResponse>(request, marshaller, unmarshaller, signer, cancellationToken));
        }
        public ListQueuesResponse LisQueues()
        {
            ListQueuesRequest  listQueuesRequest  = new ListQueuesRequest();
            ListQueuesResponse listQueuesResponse = SQSClient.ListQueues(listQueuesRequest);

            return(listQueuesResponse);
        }
예제 #14
0
        /// <summary>
        /// Lists all the queues on the SQS.
        /// </summary>
        /// <returns></returns>
        public async Task <List <string> > ListQueuesAsync()
        {
            var request  = new ListQueuesRequest();
            var response = await _client.ListQueuesAsync(request);

            return(response.QueueUrls);
        }
        public SqsSender(ILambdaLogger Logger)
        {
            logger = Logger;
            var awsCreds = new BasicAWSCredentials(AccessKey, SecretKey);
            var config   = new AmazonSQSConfig
            {
                //RegionEndpoint = Amazon.RegionEndpoint.EUCentral1,
                ServiceURL = ServiceUrl
            };
            var amazonSqsClient   = new AmazonSQSClient(awsCreds, config);
            var listQueuesRequest = new ListQueuesRequest
            {
                QueueNamePrefix = "myQueue"
            };

            if (!Task.Run <bool>(async() => await QueueExists(amazonSqsClient, QueueName)).Result)
            {
                CreateQueueResponse createQueueResponse =
                    Task.Run <CreateQueueResponse>(async() => await CreateQueue(amazonSqsClient, QueueName)).Result;
            }
            if (!Task.Run <bool>(async() => await QueueExists(amazonSqsClient, QueueName)).Result)
            {
                logger.LogLine("QUEUE WAS NOT CREATED");
            }
        }
예제 #16
0
        internal virtual ListQueuesResponse ListQueues(ListQueuesRequest request)
        {
            var marshaller   = new ListQueuesRequestMarshaller();
            var unmarshaller = ListQueuesResponseUnmarshaller.Instance;

            return(Invoke <ListQueuesRequest, ListQueuesResponse>(request, marshaller, unmarshaller));
        }
예제 #17
0
        public void SendMessage()
        {
            IAmazonSQS sqs = new AmazonSQSClient(RegionEndpoint.USEast1);

            var sqsRequest = new CreateQueueRequest
            {
                QueueName = "CartQueue"
            };

            var createQueueResponse = sqs.CreateQueueAsync(sqsRequest).Result;

            var queueUrl = createQueueResponse.QueueUrl;

            var listQueueRequest = new ListQueuesRequest();

            var listQueueResponse = sqs.ListQueuesAsync(listQueueRequest);

            Console.WriteLine($"List of amazon queue url. \n");

            foreach (var item in listQueueResponse.Result.QueueUrls)
            {
                Console.WriteLine($"Queue URL{item}");
            }

            Console.WriteLine($"Sending Message. \n");

            var sqsMessageRequest = new SendMessageRequest
            {
                QueueUrl    = queueUrl,
                MessageBody = "Message Bodykkkkk"
            };

            sqs.SendMessageAsync(sqsMessageRequest);
        }
예제 #18
0
        /// <summary>
        /// Gets a list of all registered message queues
        /// </summary>
        /// <returns>A list of all registered message queues.</returns>
        public IList <string> GetAllQueueNames()
        {
            var listQueuesRequest  = new ListQueuesRequest();
            var listQueuesResponse = this.GetAllQueueNames(listQueuesRequest);

            return(listQueuesResponse.ListQueuesResult.QueueUrl);
        }
예제 #19
0
        public void Test_A_ListQueues_And_Check_For_NonNull_Response()
        {
            bool hasCallbackArrived = false;
            bool actualValue        = false;
            bool expectedValue      = true;

            SQSResponseEventHandler <object, ResponseEventArgs> handler = null;

            handler = delegate(object sender, ResponseEventArgs args)
            {
                ISQSResponse result = args.Response;
                //Unhook from event.
                _client.OnSQSResponse -= handler;
                ListQueuesResponse response = result as ListQueuesResponse;
                if (null != response)
                {
                    actualValue = true;
                }

                hasCallbackArrived = true;
            };

            //Hook to event
            _client.OnSQSResponse += handler;

            //Create request object.
            ListQueuesRequest listQueue = new ListQueuesRequest();

            _client.ListQueues(listQueue);

            EnqueueConditional(() => hasCallbackArrived);
            EnqueueCallback(() => Assert.IsTrue(expectedValue == actualValue));
            EnqueueTestComplete();
        }
예제 #20
0
        /**
         * Convert ListQueuesRequest to name value pairs
         */
        private IDictionary <String, String> ConvertListQueues(ListQueuesRequest request)
        {
            IDictionary <String, String> parameters = new Dictionary <String, String>();

            parameters.Add("Action", "ListQueues");
            if (request.IsSetQueueNamePrefix())
            {
                parameters.Add("QueueNamePrefix", request.QueueNamePrefix);
            }
            List <Attribute> listQueuesRequestAttributeList = request.Attribute;
            int listQueuesRequestAttributeListIndex         = 1;

            foreach (Attribute listQueuesRequestAttribute in listQueuesRequestAttributeList)
            {
                if (listQueuesRequestAttribute.IsSetName())
                {
                    parameters.Add("Attribute" + "." + listQueuesRequestAttributeListIndex + "." + "Name", listQueuesRequestAttribute.Name);
                }
                if (listQueuesRequestAttribute.IsSetValue())
                {
                    parameters.Add("Attribute" + "." + listQueuesRequestAttributeListIndex + "." + "Value", listQueuesRequestAttribute.Value);
                }

                listQueuesRequestAttributeListIndex++;
            }

            return(parameters);
        }
예제 #21
0
        private void readMessages()
        {
            while (!exit)
            {
                var request = new ListQueuesRequest
                {
                    QueueNamePrefix = QueueName
                };
                var client   = new AmazonSQSClient();
                var response = client.ListQueues(request);
                var url      = response.ListQueuesResult.QueueUrl;

                var receiveMessageRequest = new ReceiveMessageRequest();
                receiveMessageRequest.MaxNumberOfMessages = 5;
                receiveMessageRequest.QueueUrl            = url[0];

                var receiveMessageResponse = client.ReceiveMessage(receiveMessageRequest);

                foreach (var message in receiveMessageResponse.ReceiveMessageResult.Message)
                {
                    //If we want to prevent dispay the same message again.
                    //if(!messages.Contains(message.MessageId))
                    //{
                    MessageBox.Show(message.Body);
                    //Addin the message to the list
                    //    this.messages.Add(message.MessageId);
                    //}
                }
                //Sleeping time
                System.Threading.Thread.Sleep(5000);
            }
        }
예제 #22
0
        public static void SQSListQueues()
        {
            #region SQSListQueues
            var client = new AmazonSQSClient();

            // List all queues that start with "My".
            var request = new ListQueuesRequest
            {
                QueueNamePrefix = "My"
            };

            var response = client.ListQueues(request);

            if (response.QueueUrls.Count > 0)
            {
                Console.WriteLine("Queue URLs:");

                foreach (var url in response.QueueUrls)
                {
                    Console.WriteLine("  " + url);
                }
            }
            else
            {
                Console.WriteLine("No matching queues.");
            }
            #endregion

            Console.ReadLine();
        }
        public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonSQSConfig config = new AmazonSQSConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonSQSClient client = new AmazonSQSClient(creds, config);

            ListQueuesResponse resp = new ListQueuesResponse();

            do
            {
                ListQueuesRequest req = new ListQueuesRequest
                {
                    NextToken = resp.NextToken
                    ,
                    MaxResults = maxItems
                };

                resp = client.ListQueues(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.QueueUrls)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.NextToken));
        }
예제 #24
0
파일: Sqsservice.cs 프로젝트: tzkwizard/sqs
        public string[] ListQueuename(string endpoint)
        {
            AmazonSQSConfig amazonSqsConfig = new AmazonSQSConfig {
                ServiceURL = endpoint
            };
            AmazonSQSClient sqs = new AmazonSQSClient(amazonSqsConfig);
            int             s   = endpoint.Length + Program.MyAccountNumber.Length;

            int l = 0;
            //Confirming the queue exists
            var listQueuesRequest  = new ListQueuesRequest();
            var listQueuesResponse = sqs.ListQueues(listQueuesRequest);
            int size = listQueuesResponse.QueueUrls.Count;

            string[] queueCollection = new string[size];
            //Console.WriteLine("Printing list of Amazon SQS queues.\n");
            if (listQueuesResponse.QueueUrls != null)
            {
                int i = 0;
                foreach (String queueUrl in listQueuesResponse.QueueUrls)
                {
                    l = queueUrl.Length;
                    queueCollection[i] = queueUrl.Substring(s, l - s);
                    i++;
                }
            }

            return(queueCollection);
        }
예제 #25
0
        public async Task ListQueues()
        {
            var request  = new ListQueuesRequest();
            var response = await Client.ListQueuesAsync(request);

            Assert.NotNull(response.ResponseMetadata.Metadata);
            Assert.NotNull(response.QueueUrls);
        }
예제 #26
0
        /// <summary>
        /// Initiates the asynchronous execution of the ListQueues operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the ListQueues operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        /// <seealso href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ListQueues">REST API Reference for ListQueues Operation</seealso>
        public virtual Task <ListQueuesResponse> ListQueuesAsync(ListQueuesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller   = new ListQueuesRequestMarshaller();
            var unmarshaller = ListQueuesResponseUnmarshaller.Instance;

            return(InvokeAsync <ListQueuesRequest, ListQueuesResponse>(request, marshaller,
                                                                       unmarshaller, cancellationToken));
        }
예제 #27
0
        /// <summary>
        /// 查看所有队列
        /// </summary>
        public async Task <ListQueuesResponse> ListQueuesAsync(ListQueuesRequest listQueuesRequest)
        {
            Dictionary <string, string> urlParam = new Dictionary <string, string>();
            string              urlPath          = HttpUtils.AddUrlPath("/v2/{project_id}/queues", urlParam);
            SdkRequest          request          = HttpUtils.InitSdkRequest(urlPath, "application/json", listQueuesRequest);
            HttpResponseMessage response         = await DoHttpRequestAsync("GET", request);

            return(JsonUtils.DeSerialize <ListQueuesResponse>(response));
        }
예제 #28
0
        public static string ListSQSQueues()
        {
            AmazonSQS          sqs         = AWSClientFactory.CreateAmazonSQSClient();
            ListQueuesRequest  sqsrequest  = new ListQueuesRequest();
            ListQueuesResponse sqsresponse = sqs.ListQueues(sqsrequest);
            ListQueuesResult   sqsrst      = sqsresponse.ListQueuesResult;

            return(sqsrst.ToString());
        }
        /// <summary>
        /// 查看所有队列
        /// </summary>
        public ListQueuesResponse ListQueues(ListQueuesRequest listQueuesRequest)
        {
            Dictionary <string, string> urlParam = new Dictionary <string, string>();
            string              urlPath          = HttpUtils.AddUrlPath("/v2/{project_id}/queues", urlParam);
            SdkRequest          request          = HttpUtils.InitSdkRequest(urlPath, listQueuesRequest);
            HttpResponseMessage response         = DoHttpRequestSync("GET", request);

            return(JsonUtils.DeSerialize <ListQueuesResponse>(response));
        }
예제 #30
0
        public IEnumerable <string> ListQueueUrls()
        {
            var request = new ListQueuesRequest();
            var client  = GetClient();

            var response = client.ListQueuesAsync(request).Result;

            return(response.QueueUrls);
        }
 public async Task<ListQueuesResponse> ListQueuesAsync(string prefix = "", int maxResults = 5000, string marker = null, bool includeMetadata = false)
 {
     var request = new ListQueuesRequest(_account, prefix, maxResults, marker, includeMetadata);
     var response = await request.ExecuteAsync(_optionalRetryPolicy);
     return response.Payload;
 }