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