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(); } } }
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(); } } }
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(); } } }