Exemple #1
0
        public void Monitorar(object parametros)
        {
            ErroParametros param                   = ((ErroParametros)parametros);
            string         topico                  = param.Topico;
            string         endrecoFila             = param.EnderecoFila;
            string         descricao               = param.Descricao;
            string         EndpointElasticSearchOK = param.EndpointElasticSearchOK;
            string         passoRetorno            = param.PassoRetorno;

            Console.WriteLine("ERRO Monitorado: " + topico);
            Console.WriteLine("Descricao: " + descricao);
            Connection connection = null;

            try
            {
                Address address = new Address(endrecoFila);
                connection = new Connection(address);
                Session      session           = new Session(connection);
                ReceiverLink receiver          = new ReceiverLink(session, NOME_FILA_CONSUMIDOR_MQ, topico);
                ElasticSearch.ElasticSearch ES = new ElasticSearch.ElasticSearch();

                while (true)
                {
                    Message request       = receiver.Receive(new TimeSpan(0, 30, 0));
                    string  replyTo       = request.Properties.ReplyTo;
                    string  correlationID = request.Properties.CorrelationId;

                    if (null != request)
                    {
                        //                        Console.WriteLine(request.Body);
                        string  stringData = request.Body.ToString();
                        dynamic results    = JsonConvert.DeserializeObject <dynamic>(stringData);

                        //Console.WriteLine("FIM de operacao: {0}", correlationID);
                        //Console.WriteLine(stringData);

                        results.passo        = passoRetorno;
                        results.dataExecucao = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");

                        stringData = JsonConvert.SerializeObject(results);

                        var contentDataES = new StringContent(stringData, System.Text.Encoding.UTF8, MIME_TYPE_JSON);

                        //Console.WriteLine("Gravando no ElasticSearch: {0}", EndpointElasticSearchOK);
                        ES.executa(EndpointElasticSearchOK, contentDataES);

                        receiver.Accept(request);
                    }
                }
            }
            catch (Exception e)
            {
                Console.Error.WriteLine("Exception {0}.", e);
                if (null != connection)
                {
                    connection.Close();
                }
            }
        }
Exemple #2
0
        public void monitorar()
        {
            Console.WriteLine("TERMINO DA OPERACAO");
            Connection connection = null;

            try
            {
                Settings             configs   = new Settings();
                ConfiguracoesValores config    = configs.ResgataParametro();
                string EndpointElasticSearchOK = config.Parametros.EndpointElasticSearch.DoctoOK;
                string enderecoFila            = config.Parametros.EnderecoFila;

                Address address = new Address(enderecoFila);
                connection = new Connection(address);
                Session      session           = new Session(connection);
                string       topicoEntrada     = config.Parametros.Termino.TopicoEntrada;
                ReceiverLink receiver          = new ReceiverLink(session, NOME_FILA_CONSUMIDOR_MQ, topicoEntrada);
                ElasticSearch.ElasticSearch ES = new ElasticSearch.ElasticSearch();

                while (true)
                {
                    Message request       = receiver.Receive(new TimeSpan(0, 30, 0));
                    string  replyTo       = request.Properties.ReplyTo;
                    string  correlationID = request.Properties.CorrelationId;

                    if (null != request)
                    {
                        //                        Console.WriteLine(request.Body);
                        string  stringData = request.Body.ToString();
                        dynamic results    = JsonConvert.DeserializeObject <dynamic>(stringData);

                        results.passo        = "TerminoProcesso";
                        results.dataExecucao = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                        string codigoTicket = correlationID;

                        stringData = JsonConvert.SerializeObject(results);

                        var contentDataES = new StringContent(stringData, System.Text.Encoding.UTF8, MIME_TYPE_JSON);

                        //                        Console.WriteLine("Gravando no ElasticSearch: {0}", EndpointElasticSearchOK + codigoTicket);
                        ES.executa(EndpointElasticSearchOK, contentDataES);


                        Console.WriteLine("FIM de operacao");
                        //                        Console.WriteLine(stringData);
                        receiver.Accept(request);
                    }
                }
            }
            catch (Exception e)
            {
                Console.Error.WriteLine("Exception {0}.", e);
                if (null != connection)
                {
                    connection.Close();
                }
            }
        }
Exemple #3
0
        private void NovaRotina(object parametro)
        {
            ParametrosRotina topico     = (ParametrosRotina)parametro;
            Connection       connection = null;

            try
            {
                Address address = new Address(topico.enderecoAMQ);
                connection = new Connection(address);
                Session              session     = new Session(connection);
                Settings             configs     = new Settings();
                ConfiguracoesValores config      = configs.ResgataParametro();
                string EndpointElasticSearchOK   = config.Parametros.EndpointElasticSearch.DoctoOK;
                string EndpointElasticSearchERRO = config.Parametros.EndpointElasticSearch.DoctoERRO;
                ElasticSearch.ElasticSearch ES   = new ElasticSearch.ElasticSearch();

                ReceiverLink receiver = new ReceiverLink(session, NOME_FILA_CONSUMIDOR_MQ, topico.topico);
                while (true)
                {
                    Message request = receiver.Receive();
                    if (null != request)
                    {
                        string stringData    = request.Body.ToString();
                        string correlationID = request.Properties.CorrelationId;
                        string replyTo       = request.Properties.ReplyTo;

                        dynamic results = JsonConvert.DeserializeObject <dynamic>(stringData);
                        Console.WriteLine("Topico acionado: {0}, Ticket: {1}, Passo: {2}", topico.topico, correlationID, results.passo);
                        using (var client = new HttpClient())
                        {
                            foreach (Rota rota in topico.rota)
                            {
                                var contentData = new StringContent(stringData, System.Text.Encoding.UTF8, MIME_TYPE_JSON);
                                try
                                {
                                    //chama a API
                                    HttpResponseMessage responseHUB = client.PostAsync(rota.endereco, contentData).Result;

                                    if (responseHUB.StatusCode == System.Net.HttpStatusCode.OK)
                                    {
                                        string retorno = responseHUB.Content.ReadAsStringAsync().Result;
                                        //posta elasticsearch
                                        var contentDataES = new StringContent(retorno, System.Text.Encoding.UTF8, MIME_TYPE_JSON);
                                        ES.executa(EndpointElasticSearchOK, contentDataES);
                                    }
                                    else
                                    {
                                        string msgErro = retryMSG(topico.enderecoAMQ, topico.topico, stringData, correlationID, replyTo, responseHUB.StatusCode.ToString());

                                        //posta elasticsearch
                                        var contentDataES = new StringContent(msgErro, System.Text.Encoding.UTF8, MIME_TYPE_JSON);

                                        //                                        Console.WriteLine("Gravando no ElasticSearch: {0}", EndpointElasticSearchERRO + correlationID);
                                        ES.executa(EndpointElasticSearchERRO, contentDataES);
                                    }
                                }
                                catch (Exception erro)
                                {
                                    string msgErro = retryMSG(topico.enderecoAMQ, topico.topico, stringData, correlationID, replyTo, erro.Message.ToString());
                                    //posta elasticsearch
                                    var contentDataES = new StringContent(msgErro, System.Text.Encoding.UTF8, MIME_TYPE_JSON);

                                    //                                    Console.WriteLine("Gravando no ElasticSearch: {0}", EndpointElasticSearchERRO + correlationID);
                                    ES.executa(EndpointElasticSearchERRO, contentDataES);
                                }
                            }
                            receiver.Accept(request);
                        }
                    }
                    else
                    {
                        //   Console.WriteLine(MSG_TIMEOUT);
                    }
                }
            }
            catch (Exception e)
            {
                Console.Error.WriteLine("Exception {0}.", e);
                if (null != connection)
                {
                    connection.Close();
                }
            }
        }