zoukankan      html  css  js  c++  java
  • c# ActiveMQ 类

    using System;
    using System.Collections.Generic;
    using System.Text;

    using Apache.NMS;
    using Apache.NMS.ActiveMQ;


    namespace yangguang.weixinandsogou
    {
    public struct Property
    {
    public string name;
    public string value;
    }

    class MQ
    {
    private string URI;
    private string TOPIC;
    private string USERNAME;
    private string PASSWORD;
    private IConnectionFactory factory;
    private IConnection connection;
    private ISession session;
    private IMessageProducer producer;

    public string uri
    {
    set { URI = value; }
    get { return URI; }
    }

    public string topic
    {
    set { TOPIC = value; }
    get { return TOPIC; }
    }

    public string username
    {
    set { USERNAME = value; }
    }

    public string password
    {
    set { PASSWORD = value; }
    }

    public MQ()
    {
    producer = null;
    factory = null;
    connection = null;
    session = null;
    }

    ~MQ()
    {
    if (producer != null)
    {
    producer.Dispose();
    }

    Close();
    }

    public void Start()
    {
    factory = new ConnectionFactory(URI);

    if (USERNAME != "")
    {
    connection = factory.CreateConnection(USERNAME, PASSWORD);
    }
    else
    {
    connection = factory.CreateConnection();
    }
    connection.Start();
    session = connection.CreateSession();
    }

    public void Close()
    {
    if (session != null)
    {
    session.Close();
    }
    if (connection != null)
    {
    connection.Stop();
    connection.Close();
    }
    }

    public void CreateProducer(bool blnTopic, string strTopicName)
    {
    if (blnTopic)
    {
    producer = session.CreateProducer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic(strTopicName));
    }
    else
    {
    producer = session.CreateProducer(new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue(strTopicName));
    }
    }

    public void CreateProducer(bool blnTopic)
    {
    if (blnTopic)
    {
    producer = session.CreateProducer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic(TOPIC));
    }
    else
    {
    producer = session.CreateProducer(new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue(TOPIC));
    }
    }

    public IMessageConsumer CreateConsumer(bool blnTopic, string strTopicName)
    {
    if (blnTopic)
    {
    return session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic(strTopicName));
    }
    else
    {
    return session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue(strTopicName));
    }
    }

    public IMessageConsumer CreateConsumer(bool blnTopic, string strTopicName, string strSelector)
    {
    if (strSelector == "")
    {
    // GlobalFunction.MsgBox("MQ selector不能为空");
    return null;
    }

    if (blnTopic)
    {
    return session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic(strTopicName), strSelector, false);
    }
    else
    {
    return session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue(strTopicName), strSelector, false);
    }
    }

    public void SendMQMessage(string strText)
    {
    ITextMessage msg = producer.CreateTextMessage();
    msg.Text = strText;
    producer.Send(msg, Apache.NMS.MsgDeliveryMode.NonPersistent, Apache.NMS.MsgPriority.Normal, TimeSpan.MinValue);
    }

    public void SendMQMessage(string strText, List<Property> lstProperty)
    {
    try
    {
    ITextMessage msg = producer.CreateTextMessage();
    msg.Text = strText;

    foreach (Property prop in lstProperty)
    {
    msg.Properties.SetString(prop.name, prop.value);
    }
    producer.Send(msg, Apache.NMS.MsgDeliveryMode.NonPersistent, Apache.NMS.MsgPriority.Normal, TimeSpan.MinValue);
    }
    catch (System.Exception ex)
    {
    //GlobalFunction.MsgBoxException(ex.Message, "SendMQMessage");
    }
    }
    }
    }

  • 相关阅读:
    poj 1860 Currency Exchange(最短路径的应用)
    poj 2965 The Pilots Brothers' refrigerator
    zoj 1827 the game of 31 (有限制的博弈论)
    poj 3295 Tautology (构造法)
    poj 1753 Flip Game(枚举)
    poj 2109 (贪心)
    poj 1328(贪心)
    Qt 对单个控件美化
    Qt 4基础
    Bash Shell
  • 原文地址:https://www.cnblogs.com/bigdata007/p/4955830.html
Copyright © 2011-2022 走看看