|
|
@@ -29,7 +29,7 @@ namespace MySystem
|
|
|
UserName = UserName,
|
|
|
Password = Password,
|
|
|
AutomaticRecoveryEnabled = true, //如果connection挂掉是否重新连接
|
|
|
- TopologyRecoveryEnabled = true //连接恢复后,连接的交换机,队列等是否一同恢复
|
|
|
+ TopologyRecoveryEnabled = true, //连接恢复后,连接的交换机,队列等是否一同恢复
|
|
|
};
|
|
|
List<AmqpTcpEndpoint> p = new List<AmqpTcpEndpoint>();
|
|
|
string[] HostNames = HostName.Split(',');
|
|
|
@@ -40,34 +40,29 @@ namespace MySystem
|
|
|
}
|
|
|
var conn = factory.CreateConnection(p);
|
|
|
var channel = conn.CreateModel();
|
|
|
- channel.QueueDeclare(QueueName, true, false, false);
|
|
|
+ channel.QueueDeclare(QueueName);
|
|
|
channel.BasicPublish("", QueueName, null, Encoding.Default.GetBytes(content));
|
|
|
channel.Dispose();
|
|
|
conn.Dispose();
|
|
|
}
|
|
|
- public void SendMsg(string QueueName)
|
|
|
+ public void SendMsg2(string content, string QueueName)
|
|
|
{
|
|
|
// 创建连接对象工厂
|
|
|
- var factory = new ConnectionFactory()
|
|
|
- {
|
|
|
- UserName = UserName,
|
|
|
- Password = Password,
|
|
|
- AutomaticRecoveryEnabled = true, //如果connection挂掉是否重新连接
|
|
|
- TopologyRecoveryEnabled = true //连接恢复后,连接的交换机,队列等是否一同恢复
|
|
|
- };
|
|
|
- List<AmqpTcpEndpoint> p = new List<AmqpTcpEndpoint>();
|
|
|
- string[] HostNames = HostName.Split(',');
|
|
|
- foreach (string subHostName in HostNames)
|
|
|
- {
|
|
|
- string[] subHostNameData = subHostName.Split(':');
|
|
|
- p.Add(new AmqpTcpEndpoint(subHostNameData[0], int.Parse(subHostNameData[1])));
|
|
|
- }
|
|
|
- var conn = factory.CreateConnection(p);
|
|
|
- var channel = conn.CreateModel();
|
|
|
- channel.QueueDeclare(QueueName, true, false, false);
|
|
|
- MpOrderService.Instance.dosomething(channel, QueueName);
|
|
|
- channel.Dispose();
|
|
|
- conn.Dispose();
|
|
|
+ // if (_connection == null)
|
|
|
+ // {
|
|
|
+ // CreateConn();
|
|
|
+ // }
|
|
|
+ // else if (!_connection.IsOpen)
|
|
|
+ // {
|
|
|
+ // CreateConn();
|
|
|
+ // }
|
|
|
+ // var channel = _connection.CreateModel();
|
|
|
+ // channel.ExchangeDeclare("kxs_direct_ranch", "direct", true);
|
|
|
+ // channel.QueueDeclare(QueueName, true, false, false);
|
|
|
+ // channel.QueueBind(QueueName, "kxs_direct_ranch", QueueName);
|
|
|
+ // channel.BasicPublish("", QueueName, null, Encoding.Default.GetBytes(content));
|
|
|
+ // channel.Dispose();
|
|
|
+ _channel_send.BasicPublish("", QueueName, null, Encoding.Default.GetBytes(content));
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
@@ -133,6 +128,30 @@ namespace MySystem
|
|
|
#endregion
|
|
|
|
|
|
#region 单对单接收
|
|
|
+ public static IModel _channel_send;
|
|
|
+ public void CreateConn2(string QueueName)
|
|
|
+ {
|
|
|
+ var factory = new ConnectionFactory()
|
|
|
+ {
|
|
|
+ UserName = UserName,
|
|
|
+ Password = Password,
|
|
|
+ AutomaticRecoveryEnabled = true, //如果connection挂掉是否重新连接
|
|
|
+ TopologyRecoveryEnabled = true //连接恢复后,连接的交换机,队列等是否一同恢复
|
|
|
+ };
|
|
|
+ List<AmqpTcpEndpoint> p = new List<AmqpTcpEndpoint>();
|
|
|
+ string[] HostNames = HostName.Split(',');
|
|
|
+ foreach (string subHostName in HostNames)
|
|
|
+ {
|
|
|
+ string[] subHostNameData = subHostName.Split(':');
|
|
|
+ p.Add(new AmqpTcpEndpoint(subHostNameData[0], int.Parse(subHostNameData[1])));
|
|
|
+ }
|
|
|
+ var conn = factory.CreateConnection(p);
|
|
|
+ _channel_send = conn.CreateModel();
|
|
|
+ _channel_send.ExchangeDeclare("kxs_direct_ranch", "direct", true);
|
|
|
+ _channel_send.QueueDeclare(QueueName, true, false, false);
|
|
|
+ _channel_send.QueueBind(QueueName, "kxs_direct_ranch", QueueName);
|
|
|
+ }
|
|
|
+
|
|
|
public static IConnection _connection;
|
|
|
public void CreateConn()
|
|
|
{
|