public void format() { try { String LAT = data["LATITUDE"].ToString(); String LONG = data["LONGITUDE"].ToString(); String coordinates = "[" + LONG + "," + LAT + "]"; data.Remove("LATITUDE"); data.Remove("LONGITUDE"); LOCALIZACAO.Add("type", "Point"); LOCALIZACAO.Add("coordinates", coordinates); } catch (Exception e) { X9.OQueRolouNaParada(e, 3); } }
/** * @param String em formato json com os dados de uma mensagem real-time de um ônibus qualquer. * Este método envia duas mensagens ao tópico da ceturb dentro do nosso RabbitMQ, * uma delas vai para a fila do popMQ (SQL-Server) e a outra para a fila do popMongo (MongoDB) */ public void send(String dadosEnvio) { { try { var conteudoMensagem = Encoding.UTF8.GetBytes(dadosEnvio); //envia uma cópia para a fila do SQL-Server this.channel.BasicPublish(exchange: RabbitTopic, routingKey: this.KeySQL, basicProperties: null, body: conteudoMensagem); //envia outra cópia para a fila do MongoDB this.channel.BasicPublish(exchange: RabbitTopic, routingKey: this.KeyMongo, basicProperties: null, body: conteudoMensagem); } catch (Exception e) { X9.OQueRolouNaParada(e, 5); } } }
protected static void OnMessage(IMessage mensagemDoApache) { Carteiro carteiro = new Carteiro(); try { if (mensagemDoApache is ActiveMQMapMessage) { var mensagemRecebida = mensagemDoApache as ActiveMQMapMessage; var chaves = mensagemRecebida.Body.Keys; Mensagem conteudoEnvio = new Mensagem(); foreach (var chave in chaves) { conteudoEnvio.add(chave.ToString(), mensagemRecebida.Body[chave.ToString()]); } conteudoEnvio.format(); String mensagemAoRabbit = JsonConvert.SerializeObject(conteudoEnvio); try { carteiro.send(mensagemAoRabbit); if (!isProductionEnv) { X9.showInfo(1, mensagemAoRabbit, null, null); } } catch (Exception co) { X9.OQueRolouNaParada(co, 1); } } } catch (Exception e) { X9.OQueRolouNaParada(e, 2); } }
public Carteiro() { EnvConfig env = new EnvConfig(); this.RabbitHost = env.getRabbitUrlConnection(); this.RabbitTopic = env.getRabbitTopic(); this.factory = new ConnectionFactory() { HostName = this.RabbitHost }; this.KeyMongo = env.getRabbitRoutingKeyMongo(); this.KeySQL = env.getRabbitRoutingKey(); try { this.connection = factory.CreateConnection(); this.channel = connection.CreateModel(); channel.ExchangeDeclare(exchange: RabbitTopic, type: "topic", durable: true); } catch (Exception e) { X9.OQueRolouNaParada(e, 4); } }