using EasyNetQ;
/********************************************************************************
** auth: DBS
** date: 2018/11/14 22:08:05
** desc: 尚未编写描述
** Ver.: V1.0.0
*********************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HH.WMS.Common.RabbitMQ
{
public class MQHelper
{
static IBus inBus = null;
static IBus outBus = null;
///
/// 发送消息
///
public static void Publish(Message msg)
{
//// 创建消息bus
if (inBus == null || !inBus.IsConnected)
inBus = BusBuilder.CreateMessageBus();
try
{
inBus.Publish(msg, x => x.WithTopic(msg.MessageRouter));
}
catch (EasyNetQException ex)
{
//处理连接消息服务器异常
}
//bus.Dispose();//与数据库connection类似,使用后记得销毁bus对象
}
///
/// 接收消息
///
///
public static void Subscribe(Message msg, IProcessMessage ipro)
{
//// 创建消息bus
if (outBus == null || !outBus.IsConnected)
outBus= BusBuilder.CreateMessageBus();
try
{
outBus.Subscribe(msg.MessageRouter, message => ipro.ProcessMsg(message), x => x.WithTopic(msg.MessageRouter));
}
catch (EasyNetQException ex)
{
//处理连接消息服务器异常
}
}
}
}