private static void AddToQueue(VowelConsCount count, IModel model) { model.ExchangeDeclare("vowel-consonant-counter", ExchangeType.Direct); string message = "VCCmessage:" + count.getId() + ":" + count.getVowel() + ":" + count.getConsonant(); var body = Encoding.UTF8.GetBytes(message); model.BasicPublish( exchange: "vowel-consonant-counter", routingKey: "text-rank-task", basicProperties: null, body: body ); }
private static void RabbitListener() { string hostName = "localhost"; IConnectionFactory factory = new ConnectionFactory { HostName = hostName }; IConnection connection = factory.CreateConnection(); IModel channel = connection.CreateModel(); channel.ExchangeDeclare(exchange: inputExchangeName, type: ExchangeType.Direct); string queueName = "count-task"; channel.QueueDeclare(queueName, false, false, false, null); channel.QueueBind(queue: queueName, exchange: inputExchangeName, routingKey: "text-rank-task"); var consumer = new EventingBasicConsumer(channel); consumer.Received += (model, ea) => { var body = ea.Body; string id = Encoding.UTF8.GetString(body); string value = GetValueByKeyAndHostName(id, hostName); VowelConsCount count = VowelConsCounter(id, value); AddToQueue(count, channel); Console.WriteLine("Id:" + count.getId() + " count: " + count.getVowel() + "/" + count.getConsonant()); }; channel.BasicConsume(queue: queueName, autoAck: true, consumer: consumer); Console.ReadLine(); }