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(); } }); } }
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); }