Пример #1
0
        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);
        }
Пример #3
0
        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);
        }