public void Configuration(IAppBuilder app) { Logger.Info("Application Start"); app.UseNLog(); ConfigureAuth(app); HangfireInitializer.ConfigureHangfire(app); HangfireInitializer.InitializeJobs(); }
public Task InitializeSchemaAsync(string connectionString, CancellationToken cancellationToken = default) { return(HangfireInitializer.EnsureDbAndTablesCreatedAsync(connectionString, null, cancellationToken)); }
public virtual async Task InitializeDbAsync(IServiceProvider serviceProvider, CancellationToken cancellationToken) { var jobStorage = serviceProvider.GetService <JobStorage>(); var newHangfireServer = jobStorage != null && jobStorage.GetType() != typeof(NoopJobStorage); if (newHangfireServer) { var configuration = serviceProvider.GetRequiredService <HangfireConfiguration>(); //Initialize Hangfire Db if (!string.IsNullOrEmpty(configuration.ConnectionString)) { if (configuration.DbInitialiation == DbInitialiation.PrepareSchemaIfNecessary) { if (configuration.ExistingConnection == null) { HangfireJobStorage.GetJobStorage(configuration.ConnectionString, options => { options.PrepareSchemaIfNecessary = true; options.EnableHeavyMigrations = false; options.EnableLongPolling = false; options.SchemaName = configuration.SchemaName; }); } else { HangfireJobStorage.GetJobStorage(configuration.ExistingConnection, options => { options.PrepareSchemaIfNecessary = true; options.EnableHeavyMigrations = false; options.EnableLongPolling = false; options.SchemaName = configuration.SchemaName; }); } } else if (configuration.DbInitialiation == DbInitialiation.PrepareSchemaIfNecessaryAndHeavyMigrations) { if (configuration.ExistingConnection == null) { HangfireJobStorage.GetJobStorage(configuration.ConnectionString, options => { options.PrepareSchemaIfNecessary = true; options.EnableHeavyMigrations = true; options.EnableLongPolling = false; options.SchemaName = configuration.SchemaName; }); } else { HangfireJobStorage.GetJobStorage(configuration.ExistingConnection, options => { options.PrepareSchemaIfNecessary = true; options.EnableHeavyMigrations = true; options.EnableLongPolling = false; options.SchemaName = configuration.SchemaName; }); } } else if (configuration.DbInitialiation == DbInitialiation.EnsureTablesDeletedThenEnsureDbAndTablesCreated) { if (configuration.ExistingConnection == null) { await HangfireInitializer.EnsureTablesDeletedAsync(configuration.ConnectionString, configuration.SchemaName); await HangfireInitializer.EnsureDbAndTablesCreatedAsync(configuration.ConnectionString, options => { options.PrepareSchemaIfNecessary = true; options.EnableHeavyMigrations = true; options.SchemaName = configuration.SchemaName; }); } else { await HangfireInitializer.EnsureTablesDeletedAsync(configuration.ExistingConnection, configuration.SchemaName); await HangfireInitializer.EnsureDbAndTablesCreatedAsync(configuration.ExistingConnection, options => { options.PrepareSchemaIfNecessary = true; options.EnableHeavyMigrations = true; options.SchemaName = configuration.SchemaName; }); } } else if (configuration.DbInitialiation == DbInitialiation.EnsureDbAndTablesCreated) { if (configuration.ExistingConnection == null) { await HangfireInitializer.EnsureDbAndTablesCreatedAsync(configuration.ConnectionString, options => { options.PrepareSchemaIfNecessary = true; options.EnableHeavyMigrations = false; options.SchemaName = configuration.SchemaName; }); } else { await HangfireInitializer.EnsureDbAndTablesCreatedAsync(configuration.ExistingConnection, options => { options.PrepareSchemaIfNecessary = true; options.EnableHeavyMigrations = false; options.SchemaName = configuration.SchemaName; }); } } else if (configuration.DbInitialiation == DbInitialiation.EnsureDbAndTablesCreatedAndHeavyMigrations) { if (configuration.ExistingConnection == null) { await HangfireInitializer.EnsureDbAndTablesCreatedAsync(configuration.ConnectionString, options => { options.PrepareSchemaIfNecessary = true; options.EnableHeavyMigrations = true; options.SchemaName = configuration.SchemaName; }); } else { await HangfireInitializer.EnsureDbAndTablesCreatedAsync(configuration.ExistingConnection, options => { options.PrepareSchemaIfNecessary = true; options.EnableHeavyMigrations = true; options.SchemaName = configuration.SchemaName; }); } } } //Launch Server var applicationLifetime = serviceProvider.GetRequiredService <IApplicationLifetime>(); var additionalProcesses = serviceProvider.GetServices <IBackgroundProcess>(); var setter = serviceProvider.GetRequiredService <Action <IBackgroundProcessingServer> >(); var serverDetails = HangfireLauncher.StartHangfireServer(serviceProvider.GetRequiredService <BackgroundJobServerOptions>(), jobStorage, new HangfireLauncherOptions() { ApplicationLifetime = applicationLifetime, AdditionalProcesses = additionalProcesses }); setter(serverDetails.Server); } }
public async Task InitializeSchemaAsync(string connectionString, CancellationToken cancellationToken = default) { await HangfireInitializer.EnsureTablesDeletedAsync(connectionString, cancellationToken); await HangfireInitializer.EnsureDbAndTablesCreatedAsync(connectionString, null, cancellationToken); }