public void EventCreate_Test()
        {
            var receiver = _eventReceiverDao.Create(new EventReceiver
            {
                Timestamp = new DateTime(1539112021),
                Tag       = "brasil.sudeste.sensor01",
                Valor     = "912391232193912"
            });

            Assert.Equal("brasil.sudeste.sensor01", receiver.Tag);
        }
示例#2
0
        public Task StartAsync(CancellationToken cancellationToken)
        {
            _logger.Log(LogLevel.Information, "Início processamento");

            do
            {
                var receiveMessageResponse = _sqs.ReceiveMessageAsync(_receiveMessageRequest).Result;

                _logger.Log(LogLevel.Information,
                            $"Foram encontradas {receiveMessageResponse.Messages.Count} mensagens para serem processadas");

                foreach (var message in receiveMessageResponse.Messages)
                {
                    _logger.Log(LogLevel.Information, $"Mensagem recebida para processamento [{message.MessageId}]");
                    _logger.Log(LogLevel.Information, $"Handle [{message.ReceiptHandle}]");
                    _logger.Log(LogLevel.Information, $"Conteúdo [{message.Body}]");

                    var eventReceiver = JsonConvert.DeserializeObject <EventReceiver>(message.Body);

                    _logger.Log(LogLevel.Information, eventReceiver.ToString());

                    _receiverDao.Create(JsonConvert.DeserializeObject <EventReceiver>(message.Body));

                    var messageReceiptHandle = receiveMessageResponse.Messages.FirstOrDefault()?.ReceiptHandle;

                    _sqs.DeleteMessageAsync(new DeleteMessageRequest
                    {
                        QueueUrl      = _configuration["AWS_SQS_QUEUE_URL_EVENT_RECEIVER"],
                        ReceiptHandle = message.ReceiptHandle
                    }, cancellationToken);
                }

                Task.Delay(5, cancellationToken);
            } while (!cancellationToken.IsCancellationRequested);

            return(Task.CompletedTask);
        }