public static IApplicationBuilder UseJobAgentConsoleToMysql(this IApplicationBuilder app, Action <MysqlConsoleServiceConfigurer> configureOptions = null) { var evt = new EventId(1, "Hangfire.HttpJob.Agent.MysqlConsole"); var options = app.ApplicationServices.GetService <IOptions <MySqlStorageOptions> >(); var configurer = new MysqlConsoleServiceConfigurer(options.Value); var loggerFactory = app.ApplicationServices.GetService <ILoggerFactory>(); var logger = loggerFactory.CreateLogger <MysqlConsoleOptionsConfigurer>(); try { configureOptions?.Invoke(configurer); } catch (Exception exception) { logger.LogCritical(evt, exception, "【Hangfire.HttpJob.Agent.MysqlConsole】 - Failed to configure Hangfire.HttpJob.Agent.MysqlConsole middleware"); } JobStorageConfig.LocalJobStorageConfig = new JobStorageConfig { Type = "mysql", HangfireDb = options.Value?.HangfireDb, TablePrefix = options.Value?.TablePrefix, ExpireAtDays = options.Value?.ExpireAtDays }; logger.LogInformation(evt, "【Hangfire.HttpJob.Agent.MysqlConsole】 - Registered MysqlConsole middleware Success!"); return(app); }
public static IApplicationBuilder UseJobAgentConsoleToMysql(this IApplicationBuilder app, Action <MysqlConsoleServiceConfigurer> configureOptions = null) { var evt = new EventId(1, "Hangfire.HttpJob.Agent.MysqlConsole"); var options = app.ApplicationServices.GetService <IOptions <MySqlStorageOptions> >(); var configurer = new MysqlConsoleServiceConfigurer(options.Value); var loggerFactory = app.ApplicationServices.GetService <ILoggerFactory>(); var logger = loggerFactory.CreateLogger <MysqlConsoleOptionsConfigurer>(); try { configureOptions?.Invoke(configurer); } catch (Exception exception) { logger.LogCritical(evt, exception, "【Hangfire.HttpJob.Agent.MysqlConsole】 - Failed to configure Hangfire.HttpJob.Agent.MysqlConsole middleware"); } if (options.Value == null) { logger.LogCritical(evt, "【Hangfire.HttpJob.Agent.MysqlConsole】 - MySqlStorageOptions can not be null"); return(app); } if (string.IsNullOrEmpty(options.Value.HangfireDb)) { throw new ArgumentException(nameof(MySqlStorageOptions.HangfireDb)); } logger.LogInformation(evt, "【Hangfire.HttpJob.Agent.MysqlConsole】 - Registered MysqlConsole middleware Success!"); return(app); }
public static IAppBuilder UseJobAgentConsoleToMysql(this IAppBuilder app, IServiceCollection services, Action <MysqlConsoleServiceConfigurer> configureOptions = null) #endif { #if NETCORE var sp = app.ApplicationServices; #else var sp = services.BuildServiceProvider();//OWIN var configRoot = sp.GetRequiredService <IConfiguration>(); services.Configure <MySqlStorageOptions>(configRoot.GetSection("JobAgent:HangfireConsole")); sp = services.BuildServiceProvider();//OWIN #endif var evt = new EventId(1, "Hangfire.HttpJob.Agent.MysqlConsole"); var options = sp.GetService <IOptions <MySqlStorageOptions> >(); var configurer = new MysqlConsoleServiceConfigurer(options.Value); var loggerFactory = sp.GetService <ILoggerFactory>(); var logger = loggerFactory.CreateLogger <MysqlConsoleOptionsConfigurer>(); try { configureOptions?.Invoke(configurer); } catch (Exception exception) { logger.LogCritical(evt, exception, "【Hangfire.HttpJob.Agent.MysqlConsole】 - Failed to configure Hangfire.HttpJob.Agent.MysqlConsole middleware"); } JobStorageConfig.LocalJobStorageConfig = new JobStorageConfig { Type = "mysql", HangfireDb = options.Value?.HangfireDb, TablePrefix = options.Value?.TablePrefix, ExpireAtDays = options.Value?.ExpireAtDays }; logger.LogInformation(evt, "【Hangfire.HttpJob.Agent.MysqlConsole】 - Registered MysqlConsole middleware Success!"); return(app); }