/// <summary> /// Перераспределение сообщений в очередях /// </summary> /// <param name="queueOf">Название очереди, из которой берутся сообщения</param> /// <param name="exchange">Точка распределения</param> /// <param name="routingQueueIn">Название маршрутизации очереди, в которую отправляются сообщения</param> public void RedistributionQueue(string queueOf, string exchange, string routingQueueIn) { IModel channel = null; try { channel = ConnectionRabbit.CreateModel(); while (true) { BasicGetResult result = channel.BasicGet(queueOf, false); if (result != null) { channel.BasicPublish(exchange, routingQueueIn, null, result.Body); channel.BasicAck(result.DeliveryTag, false); } else { break; } } } catch (Exception exception) { Log.Error(exception.ToString); throw new RabbitmqException(); } finally { if (channel != null) { channel.Close(); } } }
/// <summary> /// Перераспределение сообщений в очередях /// </summary> /// <param name="queueOf">Очередь, из которой берутся сообщения</param> /// <param name="exchange">Точка распределения</param> /// <param name="routingQueueIn">Название маршрутизации очереди, в которую отправляются сообщения</param> public void RedistributionQueue(Queue <string> queueOf, string exchange, string routingQueueIn) { IModel channel = null; try { channel = ConnectionRabbit.CreateModel(); while (true) { if (queueOf.Count != 0) { string book = queueOf.Peek(); byte[] messageBodyBytes = Encoding.UTF8.GetBytes(book); channel.BasicPublish(exchange, routingQueueIn, null, messageBodyBytes); queueOf.Dequeue(); } else { break; } } } catch (Exception exception) { Log.Error(exception.ToString); throw new RabbitmqException(); } finally { if (channel != null) { channel.Close(); } } }