/* * Activemq messaging thread */ public void ActiveMQBrokerThreadRun() { while (true) { try { String value = (String)brokerQueue.Dequeue(); //activemqSender.Send(value); logger.Debug("Message is sent with activemq"); Thread.Sleep(1); if (messagingFinished && brokerQueue.Count == 0) { activeMQconnection.Close(); return; } } catch (System.Exception e) { //disables broker type messaging BROKER = NONE; logger.Error(e); brokerQueue.Clear(); activeMQconnection.Close(); return; } } }
public CaptureDTO Popup(string userId) { var sysUser = _sysUserRepository.GetById(userId.ToInt()); if (sysUser.IsNotNull() && !sysUser.SysChannels.IsNullOrEmpty()) { var sb = new StringBuilder(); sysUser.SysChannels.ToList().ForEach(t => sb.Append($"or channel='{t.Name}' ")); var selector = sb.ToString().TrimStart('o', 'r').TrimEnd(' '); var rtnJson = string.Empty; IConnectionFactory factory = new ConnectionFactory(ConfigPara.MQIdaddress); //Create the connection using (Apache.NMS.IConnection connection = factory.CreateConnection()) { try { connection.ClientId = "SKCustome" + userId; connection.Start(); //Create the Session using (ISession session = connection.CreateSession()) { IMessageConsumer consumer = session.CreateDurableConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("MQMessage"), sysUser.Name, selector, false); var i = 10; while (i > 0) { ITextMessage msg = (ITextMessage)consumer.Receive(new TimeSpan(1000)); if (msg != null) { rtnJson = msg.Text; } i--; } consumer.Close(); } } catch { } finally { connection.Stop(); connection.Close(); } } var capture = rtnJson.ToObject <Capture>(); if (capture.IsNotNull()) { if (capture.CreateTime.AddMinutes(2) > DateTime.Now) { return(capture.ConvertoDto <Capture, CaptureDTO>()); } } } return(default(CaptureDTO)); }
public void PublishMsgToTopic(string brokerUrl, string topicName) { Apache.NMS.IConnection con = null; ITextMessage msg = null; try { var factory = new ConnectionFactory(brokerUrl); // factory.PrefetchPolicy = new PrefetchPolicy() { DurableTopicPrefetch = 1, TopicPrefetch = 1 }; con = factory.CreateConnection("admin", "admin"); con.ClientId = "OrderMsgProducer-1"; con.RequestTimeout = TimeSpan.FromMinutes(5); con.Start(); using (var session = con.CreateSession(Apache.NMS.AcknowledgementMode.ClientAcknowledge)) { var dest = (IDestination)session.GetTopic(topicName); var prod = session.CreateProducer(dest); prod.DeliveryMode = MsgDeliveryMode.NonPersistent; prod.TimeToLive = TimeSpan.FromMinutes(20); do { Console.WriteLine("Please enter msg"); var textMsg = Console.ReadLine(); msg = prod.CreateTextMessage(textMsg); msg.Properties.SetLong("x-opt-delivery-delay", 10000); prod.Send(msg); msg.ClearBody(); Console.WriteLine("Please press esc key to exit."); } while (Console.ReadKey().Key != ConsoleKey.Escape); prod.Close(); } } catch (Exception ex) { string emsg = ex.Message; } finally { con.Close(); con.Dispose(); } }