コード例 #1
0
        /// <summary>
        /// 发布
        /// </summary>
        /// <param name="patternType">模式类型</param>
        /// <param name="routingKey">路由key</param>
        /// <param name="messageBody">消息内容</param>
        /// <param name="publishTime">发布时间(到了发布时间队列才会执行)</param>
        /// <param name="exchangeName">交换机名称</param>
        /// <param name="durabled">是否持久化(默认:需要持久化)</param>
        /// <param name="headers">头部信息</param>
        /// <returns></returns>
        public static ResponseResult Publish(PublishPatternType patternType, string routingKey = "", object messageBody = null, DateTime?publishTime = null,
                                             string exchangeName = "", bool durabled = true, Dictionary <string, object> headers = null)
        {
            var instance = GetInstance(patternType, patternType);

            return(instance.Publish(exchangeName, routingKey, messageBody, publishTime, durabled, headers));
        }
コード例 #2
0
 /// <summary>
 /// 根据点赞类型获取对象实例
 /// </summary>
 /// <param name="patternType">模式类型</param>
 /// <param name="constructorArgs">可变的构造函数列表</param>
 /// <returns></returns>
 private static BaseProducer GetInstance(PublishPatternType patternType, params object[] constructorArgs)
 {
     if (!InstanceCacheDic.ContainsKey(patternType))
     {
         lock (locker)
         {
             if (!InstanceCacheDic.ContainsKey(patternType))
             {
                 string       assemblyName = "Stack.RabbitMQ.Producers";
                 string       className    = $"{assemblyName}.{patternType.ToString()}Producer";
                 BaseProducer instance     = (BaseProducer)Activator.CreateInstance(Type.GetType(className), constructorArgs);
                 InstanceCacheDic.Add(patternType, instance);
             }
         }
     }
     return(InstanceCacheDic[patternType]);
 }
コード例 #3
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="channel"></param>
 public RoutingProducer(PublishPatternType patternType)
     : base(patternType)
 {
 }
コード例 #4
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="patternType"></param>
 public RPCProducer(PublishPatternType patternType)
     : base(patternType)
 {
 }
コード例 #5
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="queueName"></param>
 /// <param name="imodel"></param>
 /// <param name="channel"></param>
 public TopicProducer(PublishPatternType patternType)
     : base(patternType)
 {
 }
コード例 #6
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="channel"></param>
 /// <param name="patternType"></param>
 public BaseProducer(PublishPatternType patternType)
 {
     PatternType = patternType;
 }