Example #1
0
        public static void ListenMq()
        {
            //var mappers = AppDomain.CurrentDomain.GetAssemblies()
            //                    .SelectMany(a => a.GetTypes().Where(t => t.GetInterfaces().Contains(typeof(PFConsumerTask))));
            Type[] taskTypes = new Type[] { typeof(PFConsumerTask), typeof(PFConsumerResponseTask) };
            var    mappers   = AppDomain.CurrentDomain.GetAssemblies()
                               .SelectMany(a => a.GetTypes().Where(t => t.GetInterfaces().Any(b => taskTypes.Contains(b))));

            //if (!mappers.Any()) { throw new Exception("必需实现接口IPFConfigMapper"); }
            foreach (var i in mappers)
            {
                var taskObj = Activator.CreateInstance(i);
                if (taskObj is PFConsumerResponseTask)
                {
                    PFConsumerResponseTask tmpObj = taskObj as PFConsumerResponseTask;
                    PFMqHelper.BuildConsumer(tmpObj);
                }
                else if (taskObj is PFConsumerTask)
                {
                    PFConsumerTask tmpObj = taskObj as PFConsumerTask;
                    PFMqHelper.BuildConsumer(tmpObj);
                }
                //PFConsumerTask tmpObj = Activator.CreateInstance(i) as PFConsumerTask;
                //PFMqHelper.BuildConsumer(tmpObj);
            }
            //var mapper = Activator.CreateInstance(mappers.First());
        }
Example #2
0
        public static void BuildConsumer(PFConsumerTask task)
        {
            PFMqConfig mqConfig = task.GetMqConfig(_mqConfig.TClone());
            PFMqType   mqType   = mqConfig.getMqType();

            switch (mqType)
            {
            //case PFMqType.RabbitMq:
            //	(new PFMq(mqConfig)).BuildRabbitMqConsumer(task);
            //	break;
            //case PFMqType.RocketMq:
            //	(new PFMq(mqConfig)).BuildRocketMqConsumer(task);
            //	break;
            //case PFMqType.AliMq:
            //	(new PFMq(mqConfig)).BuildAliMqConsumer(task);
            //	break;
            case PFMqType.PFEmailMq:
                (new PFMq(mqConfig)).BuildPFEmailMqConsumer(task);
                break;

            default:
                break;
            }
        }