public static bool Push(MQMessage message) { try { using (var channel = MQConnection.CreateModel()) { channel.QueueDeclare(queue: MQQueueName, durable: true, exclusive: false, autoDelete: false, arguments: null); var properties = channel.CreateBasicProperties(); properties.Persistent = true; //--------------------------------- channel.BasicPublish(exchange: "", routingKey: MQQueueName, basicProperties: properties, body: message.ObjectToByteArray()); //-------------------- return(true); } } catch (Exception ex) { log.Error(ex); return(false); } }
public static MQMessage Pull() { //var factory = new ConnectionFactory() { HostName = MQHostName, UserName = MQUserName, Password = MQPassword }; //using (var connection = factory.CreateConnection()) try { using (var channel = MQConnection.CreateModel()) { channel.QueueDeclare(queue: MQQueueName, durable: true, exclusive: false, autoDelete: false, arguments: null); //var properties = channel.CreateBasicProperties(); //properties.Persistent = true; channel.BasicQos(prefetchSize: 0, prefetchCount: 1, global: false); BasicGetResult result = channel.BasicGet(MQQueueName, false); if (result != null) { MQMessage model = ByteArrayToObject <MQMessage>(result.Body); channel.BasicAck(result.DeliveryTag, false); return(model); } } } catch (Exception ex) { log.Error(ex); } return(null); }
public static bool Consumer(Func <MQMessage, bool> excuteMessage) { try { using (var channel = MQConnection.CreateModel()) { channel.QueueDeclare(queue: MQQueueName, durable: true, exclusive: false, autoDelete: false, arguments: null); channel.BasicQos(prefetchSize: 0, prefetchCount: 1, global: false); var consumer = new EventingBasicConsumer(channel); consumer.Received += (ch, ea) => { var body = ea.Body; // ... process the message MQMessage msg = ByteArrayToObject <MQMessage>(body); if (excuteMessage(msg)) { channel.BasicAck(ea.DeliveryTag, false); } }; String consumerTag = channel.BasicConsume(MQQueueName, false, consumer); return(true); } } catch (Exception ex) { log.Error(ex); } return(false); }
private static bool ExcuteMessage(MQMessage msg) { if (msg != null) { Console.WriteLine(string.Format("[F1:F2] = [{0}:{1}]", msg.F1, msg.F2)); return(true); } return(false); }
private static bool PushMQ(int numberMsg) { int i = 1; while (i < numberMsg) { int count = 0; var message = new MQMessage(i); while (!MQUtils.Push(message)) { Console.WriteLine("{0} Có lỗi khi gửi lên queue. Thử lại lần {1}", i, count++); Thread.Sleep(3000); } Console.WriteLine(" [x] Sent {0}", i++); } Console.WriteLine("Push all msg done!"); return(true); }
public static bool Pull(Func <MQMessage, bool> excuteMessage) { try { using (var channel = MQConnection.CreateModel()) { channel.QueueDeclare(queue: MQQueueName, durable: true, exclusive: false, autoDelete: false, arguments: null); channel.BasicQos(prefetchSize: 0, prefetchCount: 1, global: false); BasicGetResult result = channel.BasicGet(MQQueueName, false); if (result != null) { MQMessage msg = ByteArrayToObject <MQMessage>(result.Body); if (excuteMessage(msg)) { // đánh dấu đã đọc msg này channel.BasicAck(result.DeliveryTag, false); return(true); } else { return(false); } } else { return(false); } } } catch (Exception ex) { log.Error(ex); } return(false); }
public static bool Pull(IModel channel, Func <MQMessage, bool> excuteMessage) { BasicGetResult result = channel.BasicGet(MQQueueName, false); if (result != null) { MQMessage msg = ByteArrayToObject <MQMessage>(result.Body); if (excuteMessage(msg)) { // đánh dấu đã đọc msg này channel.BasicAck(result.DeliveryTag, false); return(true); } else { return(false); } } else { return(false); } }