Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }