public Task StartAsync(CancellationToken cancellationToken) { try { _manager = new MQServcieManager(); foreach (var dbMapping in _rabitMqOption.DbTables) { _manager.AddService(new ConsumeService(_rabitMqOption, dbMapping, _dbTypeMapper) { OnAction = OnActionOutput }); } _manager.OnAction = OnActionOutput; _manager.Start(); AppDomain.CurrentDomain.ProcessExit += CurrentDomainOnProcessExit; _logger.LogInformation("rabit consume client start succ..."); } catch (Exception ex) { _logger.LogError(ex, "rabit consume client start error..."); } return(Task.CompletedTask); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory factory, IApplicationLifetime lifeTime) { serviceManager = new MQServcieManager(this.Configuration, factory.CreateLogger <MQServcieManager>()); lifeTime.ApplicationStarted.Register(() => { serviceManager.Start(); }); lifeTime.ApplicationStopping.Register(() => { serviceManager.Stop(); }); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); app.UseCookiePolicy(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); }
private static void UseRabbitMQ(IConfiguration configuration) { mqManager = new MQServcieManager(logWriter, filterService, configuration, logger); lifeTime.ApplicationStarted.Register(() => { mqManager.Start(); }); lifeTime.ApplicationStopping.Register(() => { mqManager.Stop(); }); }
public static void Execute() { //初始化mq连接参数对象 MQConfig config = new MQConfig() { Url = MQ_UrlParam, UserName = MQ_UserNameParam.Substring(5), Pwd = string.Concat(MQ_PwdParam.Substring(5, 9), System.Convert.ToInt64(MQ_PwdParam.Substring(14), 2).ToString()), }; MQServcieManager mqManager = new MQServcieManager(); //循环读取所有已存在的区号列表 List <string> citycodeList = CityCodeDataManager.GetAllCityCodeList(); foreach (var item in citycodeList) { InitMonitorCityCode(mqManager, config, item); } //监听“创建新地区”的队列 MonitorNewParking(mqManager, config); //监听“付款数据”的队列 MonitorPayData(mqManager, config); //日志记录 mqManager.OnShowClientAction = OnActionOutputLog; //动态添加新地区的回调 mqManager.AddClientBusAction = OnActionAddClientBus; //开始执行 mqManager.Start(); Thread tMain = new Thread(() => ThreadMain(mqManager, config)); tMain.IsBackground = true; tMain.Start(); }
static void Test() { MQConfig config = new MQConfig() { HostName = "172.16.1.219", Password = "******", Port = 5672, UserName = "******" }; MQServcieManager manager = new MQServcieManager(); manager.AddService(new DemoService(config)); manager.OnAction = OnActionOutput; manager.Start(); Console.WriteLine("服务已启动"); Console.ReadKey(); manager.Stop(); Console.WriteLine("服务已停止,按任意键退出..."); Console.ReadKey(); }