async Task <ReceiveMessageResponse> ConsumeMessage()
        {
            var message = await SQSClient.ReceiveMessageAsync(new ReceiveMessageRequest()
            {
                QueueUrl            = Option.QueueUrl,
                MaxNumberOfMessages = Option.MaxNumberOfMessages
            });

            if (message?.Messages?.Count() > 0)
            {
                // Keep consuming next message on next OnTimer
                LastConsumeMessage = message.Messages.Last();
                var batch = message.Messages.ConvertAll(o => new DeleteMessageBatchRequestEntry()
                {
                    Id            = o.MessageId,
                    ReceiptHandle = o.ReceiptHandle
                });

                var deleteResult = await SQSClient.DeleteMessageBatchAsync(Option.QueueUrl, batch);

                if (deleteResult.Failed?.Count() > 0)
                {
                    throw new Exception("Delete from SQS failed. ");
                }
            }

            return(message);
        }
Beispiel #2
0
        private async Task SendMessage(string queueName, string messageBody, ILambdaContext context)
        {
            try
            {
                var response = await SQSClient.GetQueueUrlAsync(queueName);

                await SQSClient.SendMessageAsync(response.QueueUrl, messageBody);
            }
            catch (Exception e)
            {
                context.Logger.LogLine("Send Message Error" + e.Message + " and " + e.InnerException);
            }
            await Task.CompletedTask;
        }
        public void TwitterScraperService_Constructor()
        {
            IScraperService _scraper =
                new TwitterClient("dakmNn0r3dhbMaUc4lvo46ErA",
                                  "RUPlnEIgGrgZ0NnK4diylDorm23zYBfERaIBNkNmvu9l7ZLzb8",
                                  "1222242177314631681-MAtzVci7wbHqyw1G4vz5YEfAGRfIby",
                                  "qDP1TUtFE0D0gGfc1gmXu9e7rILxZOhKjHWMhFSBbPw6H");

            ISQSService _sqsClient = new SQSClient("https://sqs.ca-central-1.amazonaws.com", "IncomeTwitterPosts", "113508044065");

            ITwitterScraper client =
                new TwitterScraperService(_scraper, _sqsClient);

            Assert.NotNull(client);
        }
        async Task <SendMessageResponse> PublishMessage()
        {
            var message = ExecutedCount.ToString();
            var result  = await SQSClient.SendMessageAsync(new SendMessageRequest()
            {
                QueueUrl          = Option.QueueUrl,
                MessageBody       = message,
                MessageAttributes = new Dictionary <string, MessageAttributeValue>()
                {
                    { "generatedTs", new MessageAttributeValue()
                      {
                          DataType = "String", StringValue = GeneratedTs.ToString("s")
                      } },
                    { "generatedId", new MessageAttributeValue()
                      {
                          DataType = "String", StringValue = GeneratedId.ToString()
                      } }
                }
            });

            return(result);
        }
        public async Task SQSClient()
        {
            ICollection <IResult> lst = new List <IResult>()
            {
                (IResult) new Post()
                {
                    CreatedAt = DateTime.Now,
                    CreatedBy = "me",
                    HashTags  = new List <string>()
                    {
                        "someone"
                    },
                    Id      = Guid.NewGuid().ToString(),
                    PostURL = "",
                    Text    = "Sometext"
                }
            };

            ISQSService service = new SQSClient("https://sqs.ca-central-1.amazonaws.com", "IncomeTwitterPosts", "113508044065");

            var msgs = await service.SendBatchMessage(lst);

            Assert.True(msgs);
        }
        public void SQSClient_Constructor()
        {
            ISQSService service = new SQSClient("https://sqs.ca-central-1.amazonaws.com", "IncomeTwitterPosts", "113508044065");

            Assert.NotNull(service);
        }