private void Listener() { var logger = LogManager.GetCurrentClassLogger(); ApplicationDbContext db = new ApplicationDbContext(); MongoClient mdb = new MongoClient(); CheckDB cdb = new CheckDB(db, mdb, logger); try { var bus = RabbitHutch.CreateBus("host=localhost").Advanced; var queue = bus.QueueDeclare("data_queue"); var exchange = bus.ExchangeDeclare("data", ExchangeType.Topic, false, false, false, false, null, false); var binding = bus.Bind(exchange, queue, "#"); bus.Consume(queue, (body, properties, info) => Task.Factory.StartNew(() => { string message = Encoding.UTF8.GetString(body); dynamic json = JObject.Parse(message); PacketHandler pd = new PacketHandler(cdb); if (json.packet_type == "alarm") { pd.Alarm(json); } })); } catch (Exception e) { logger.Error(e); } }