public static void Start(int count) { TaskFactory taskFactory = new TaskFactory(); Action action = () => { ConnectionFactory factory = TestUtilitiesClass.GetConnectionFactory(); using (IConnection connection = factory.CreateConnection()) { using (IModel channel = connection.CreateModel()) { IBasicProperties properties = channel.CreateBasicProperties(); properties.Persistent = true; channel.QueueDeclare(queue: "MessageAcknowledgment", durable: false, exclusive: false, autoDelete: false, arguments: null); for (int i = 0; i < count; i++) { byte[] body = TestUtilitiesClass.GetMessage(i.ToString()); RabbitMqMessage item = TestUtilitiesClass.ParseMessage(body); channel.BasicPublish(exchange: "", routingKey: "MessageAcknowledgment", basicProperties: properties, body: body); Console.WriteLine("Queued {0}", item.ToJsonString()); Console.WriteLine(""); Thread.Sleep(TimeSpan.FromSeconds(0.5)); } } } }; taskFactory.StartNew(action); }
public static void Main2(int count) { TestUtilitiesClass.PrintThreadId("NewTask.Main2 (Producer)"); ConnectionFactory factory = TestUtilitiesClass.GetConnectionFactory(); using (IConnection connection = factory.CreateConnection()) using (IModel channel = connection.CreateModel()) { channel.QueueDeclare(queue: "task_queue", durable: true, exclusive: false, autoDelete: false, arguments: null); byte[] message = TestUtilitiesClass.GetMessage("FairDispatchConsole"); IBasicProperties properties = channel.CreateBasicProperties(); properties.Persistent = true; for (int i = 0; i < count; i++) { channel.BasicPublish(exchange: "", routingKey: "task_queue", basicProperties: properties, body: message); Console.WriteLine("[FairDispatchConsole] Sent {0} ThreadId: {1}", message, Thread.CurrentThread.ManagedThreadId); Thread.Sleep(TimeSpan.FromSeconds(0.5)); } } }
public static void Main2(string severity) { TestUtilitiesClass.PrintThreadId("EmitLogDirect"); ConnectionFactory factory = TestUtilitiesClass.GetConnectionFactory(); using (IConnection connection = factory.CreateConnection()) using (IModel channel = connection.CreateModel()) { channel.ExchangeDeclare(exchange: "direct_logs", type: ExchangeType.Direct); byte[] body = TestUtilitiesClass.GetMessage("EmitLogDirect " + severity); RabbitMqMessage rabbitMqMessage = TestUtilitiesClass.ParseMessage(body); channel.BasicPublish(exchange: "direct_logs", routingKey: severity, basicProperties: null, body: body); Console.WriteLine("[EmitLogDirect] Sent '{0}':'{1}'", severity, rabbitMqMessage); TestUtilitiesClass.SleepProducer(); } }
public static void Main2(int count) { TestUtilitiesClass.PrintThreadId("EmitLog"); ConnectionFactory factory = TestUtilitiesClass.GetConnectionFactory(); using (IConnection connection = factory.CreateConnection()) using (IModel channel = connection.CreateModel()) { channel.ExchangeDeclare(exchange: "logs", type: ExchangeType.Fanout); byte[] body = TestUtilitiesClass.GetMessage("PuttingItAllTogetherConsole"); RabbitMqMessage rabbitMqMessage = TestUtilitiesClass.ParseMessage(body); for (int i = 0; i < count; i++) { channel.BasicPublish(exchange: "logs", routingKey: "", basicProperties: null, body: body); Console.WriteLine("Sent {0}", rabbitMqMessage.ToJsonString()); TestUtilitiesClass.SleepProducer(); } } }
public static void Main2(int counter) { TestUtilitiesClass.PrintThreadId("FanoutLogsProducer.Main2"); ConnectionFactory factory = TestUtilitiesClass.GetConnectionFactory(); using (IConnection connection = factory.CreateConnection()) using (IModel channel = connection.CreateModel()) { channel.ExchangeDeclare("logs", ExchangeType.Fanout); channel.QueueDeclare("logA", durable: false, exclusive: false, autoDelete: false); channel.QueueDeclare("logB", durable: false, exclusive: false, autoDelete: false); channel.QueueDeclare("logC", durable: false, exclusive: false, autoDelete: false); channel.QueueBind("logA", "logs", ""); channel.QueueBind("logB", "logs", ""); channel.QueueBind("logC", "logs", ""); byte[] message = TestUtilitiesClass.GetMessage("FanoutLogsProducer"); RabbitMqMessage rabbitMqMessage = TestUtilitiesClass.ParseMessage(message); for (int i = 0; i < counter; i++) { channel.BasicPublish(exchange: "logs", routingKey: "", basicProperties: null, body: message); Console.WriteLine("Published: " + rabbitMqMessage.ToJsonString()); TestUtilitiesClass.SleepProducer(); } } }
public static void Create(int counter) { TestUtilitiesClass.PrintThreadId("TempQueueCreator.Create"); ConnectionFactory connectionFactory = TestUtilitiesClass.GetConnectionFactory(); IConnection connection = connectionFactory.CreateConnection(); IModel channel = connection.CreateModel(); string queueName = channel.QueueDeclare().QueueName; string queueName2 = channel.QueueDeclare().QueueName; string queueName3 = channel.QueueDeclare().QueueName; Console.WriteLine("Temp Queue Created: " + queueName); channel.ExchangeDeclare("tempExc", ExchangeType.Direct); channel.QueueBind(queueName, "tempExc", "routingKey1"); channel.QueueBind(queueName2, "tempExc", "routingKey2"); channel.QueueBind(queueName3, "tempExc", "routingKey1"); for (int i = 0; i < counter; i++) { byte[] message = TestUtilitiesClass.GetMessage("TempQueueCreator"); RabbitMqMessage rabbitMqMessage = TestUtilitiesClass.ParseMessage(message); channel.BasicPublish(exchange: "tempExc", routingKey: "routingKey1", basicProperties: null, body: message); Console.WriteLine("Sent {0}", rabbitMqMessage.ToJsonString()); } }
public static void Main2(string[] args, int count) { ConnectionFactory factory = TestUtilitiesClass.GetConnectionFactory(); using (IConnection connection = factory.CreateConnection()) using (IModel channel = connection.CreateModel()) { channel.ExchangeDeclare(exchange: "topic_logs", type: ExchangeType.Topic); string routingKey = (args.Length > 0) ? args[0] : "anonymous.info"; byte[] message = (args.Length > 1) ? TestUtilitiesClass.GetMessage(string.Join(" ", args.Skip(1).ToArray())) : TestUtilitiesClass.GetMessage("Hello World!"); for (int i = 0; i < count; i++) { channel.BasicPublish(exchange: "topic_logs", routingKey: routingKey, basicProperties: null, body: message); RabbitMqMessage rabbitMqMessage = TestUtilitiesClass.ParseMessage(message); Console.WriteLine("[x] Sent '{0}':'{1}'", routingKey, rabbitMqMessage.ToJsonString()); TestUtilitiesClass.SleepProducer(); } } }