Пример #1
0
        static void Test4()
        {
            foreach (var item in PushPositionQueue.QUEUE_SYMBOLS)
            {
                Console.WriteLine($"{item.Value} receive start...");
                MQConsumer.ReceiveMessage(item.Value, m =>
                {
                    string msg = Encoding.UTF8.GetString(m);
                    Console.WriteLine($"{item.Value}:{msg}");

                    try
                    {
                        PushModel model = JsonConvert.DeserializeObject <PushModel>(msg);
                        IConsumeHandler consumeHandler = ConsumeFactory.Create(model.PositionType);
                        consumeHandler.Process(model);
                    }
                    catch (Exception ex)
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine($"Process failure:{CommonCs.GetExceptionMessages(ex)}");
                        Console.ResetColor();
                    }
                });
            }
        }
Пример #2
0
        public static IConsumeHandler Create(PushPositionType positionType)
        {
            IConsumeHandler handler = null;

            switch (positionType)
            {
            case PushPositionType.User:
                //handler = new UserConsumeHandler();
                throw new NotImplementedException("UserConsumeHandler");

            case PushPositionType.Near:
                handler = new NearCircleConsumeHandler();
                break;

            case PushPositionType.Area:
                throw new NotImplementedException("AreaConsumeHandler");

            default:
                throw new NotImplementedException("ConsumeHandler");
            }
            return(handler);
        }