Exemple #1
0
        /// <summary>
        /// 创建生产者
        /// </summary>
        /// <param name="group"></param>
        /// <returns></returns>
        public static DefaultMQProducer CreateDefaultMQProducer(string groupName, int queueCount = 6)
        {
            var producer = producers.Where(o => o.getProducerGroup() == groupName).FirstOrDefault();

            if (producer == null) //双if +lock
            {
                lock (producer_lock)
                {
                    producer = producers.Where(o => o.getProducerGroup() == groupName).FirstOrDefault();
                    if (producer == null)
                    {
                        producer = new DefaultMQProducer(groupName);
                        producer.setNamesrvAddr(namesrvAddr);
                        producer.setRetryTimesWhenSendFailed(3);
                        producer.setDefaultTopicQueueNums(queueCount);
                        producer.start();
                        producers.Add(producer);
                    }
                }
            }
            return(producer);
        }