rabbitMQ封装c#


rabbitmq封装,采用连接池,频道也是采用连接池。减少频繁连接造成的资源消耗。如果代码有误的地方请指出。
资源截图
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using RabbitMQ.Client;

namespace MQCore
{
    internal class ConnectionInfo : IConnectionInfo
    {
        IConnection connection;
        ChannelPool channelPool;
        object _lock = new object();

        public ConnectionInfo(IConnection connection int capacity)
        {
            this.connection = connection;
            channelPool = new ChannelPool(capacity);
        }

        public int createChannelNum { get { return channelPool == null ? 0 : channelPool.createChannelNum; } }

        /// 
        /// 检查是否允许释放
        /// 

        /// 
        public bool CheckCanFree()
        {
            channelPool.TimeFree();
            return channelPool.Count == 0;
        }

        /// 
        /// 释放
        /// 

        public void Free()
        {
            connection = null;
            channelPool = null;
        }

        public IMQChannel CreateModel()
        {
            lock (_lock)
            {
                return channelPool.Pop(()=> {
                    channelPool.Push(new MQChannel(channelPool connection.CreateModel()) true);
                });
            }
        }

        public void Dispose()
        {

        }
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      85798  2019-08-20 15:44  MQ.vsconfigapplicationhost.config

    ..A..H.    101888  2019-08-23 16:45  MQ.vsMQv15.suo

     文件       1588  2019-08-21 10:48  MQMQ.sln

     文件     170288  2015-12-01 14:31  MQMQCoreinDebugMicrosoft.Diagnostics.Tracing.EventSource.dll

     文件      19456  2019-08-23 16:42  MQMQCoreinDebugMQCore.dll

     文件      77312  2019-08-23 16:42  MQMQCoreinDebugMQCore.pdb

     文件     276480  2018-06-18 15:49  MQMQCoreinDebugRabbitMQ.Client.dll

     文件       1463  2019-08-23 15:23  MQMQCoreConnectionInfo.cs

     文件        644  2019-08-23 15:15  MQMQCoreinterfaceIConnectionInfo.cs

     文件        368  2019-08-23 11:05  MQMQCoreinterfaceIMQChannel.cs

     文件        855  2019-08-22 17:23  MQMQCoreinterfaceIMQManage.cs

     文件        962  2019-08-20 19:09  MQMQCoreinterfaceIMQManageConfig.cs

     文件        646  2019-08-23 11:06  MQMQCoreMQChannel.cs

     文件       3123  2019-08-22 18:00  MQMQCoreMQCore.csproj

     文件       1709  2019-08-23 16:42  MQMQCoreMQManage.cs

     文件       1024  2019-08-20 19:09  MQMQCoreMQManageConfig.cs

     文件       2143  2019-08-22 11:41  MQMQCoremsgMessage.cs

     文件       8221  2019-08-22 17:54  MQMQCoremsgRabbitMqDelayPublisher.cs

     文件       5518  2019-08-22 17:54  MQMQCoremsgRabbitMqListener.cs

     文件       6554  2019-08-22 18:15  MQMQCoremsgRabbitMqPublisher.cs

     文件       3626  2019-08-22 17:58  MQMQCoremsgRabbitMqQuery.cs

     文件      12510  2019-08-22 17:59  MQMQCoreobjDebugDesignTimeResolveAssemblyReferencesInput.cache

     文件          0  2019-08-23 16:42  MQMQCoreobjDebugMQCore.csproj.CopyComplete

     文件         42  2019-08-23 15:23  MQMQCoreobjDebugMQCore.csproj.CoreCompileInputs.cache

     文件       1304  2019-08-23 16:41  MQMQCoreobjDebugMQCore.csproj.FileListAbsolute.txt

     文件       8424  2019-08-23 16:41  MQMQCoreobjDebugMQCore.csprojAssemblyReference.cache

     文件      19456  2019-08-23 16:42  MQMQCoreobjDebugMQCore.dll

     文件      77312  2019-08-23 16:42  MQMQCoreobjDebugMQCore.pdb

     文件          0  2019-08-20 19:03  MQMQCoreobjDebugMQManage.csproj.CopyComplete

     文件         42  2019-08-20 19:03  MQMQCoreobjDebugMQManage.csproj.CoreCompileInputs.cache

............此处省略168个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)