/// <summary> /// Configures Hangfire to use Tags. /// </summary> /// <param name="configuration">Global configuration</param> /// <param name="options">Options for tags</param> /// <returns></returns> public static IGlobalConfiguration UseTagsWithMemory(this IGlobalConfiguration configuration, TagsOptions options = null) { options = options ?? new TagsOptions(); options.Storage = new MemoryTagsServiceStorage(); var config = configuration.UseTags(options); return(config); }
/// <summary> /// Configures Hangfire to use Tags. /// </summary> /// <param name="configuration">Global configuration</param> /// <param name="options">Options for tags</param> /// <param name="sqlOptions">Options for sql storage</param> /// <returns></returns> public static IGlobalConfiguration UseTagsWithSql(this IGlobalConfiguration configuration, TagsOptions options = null, SqlServerStorageOptions sqlOptions = null) { options = options ?? new TagsOptions(); sqlOptions = sqlOptions ?? new SqlServerStorageOptions(); options.Storage = new SqlTagsServiceStorage(sqlOptions); var config = configuration.UseTags(options); return(config); }
/// <summary> /// Configures Hangfire to use Tags. /// </summary> /// <param name="configuration">Global configuration</param> /// <param name="options">Options for tags</param> /// <param name="sqlOptions">Options for sql storage</param> /// <param name="jobStorage">The jobStorage for which this configuration is used.</param> /// <returns></returns> public static IGlobalConfiguration UseTagsWithPostgreSql(this IGlobalConfiguration configuration, TagsOptions options = null, PostgreSqlStorageOptions sqlOptions = null, JobStorage jobStorage = null) { options = options ?? new TagsOptions(); sqlOptions = sqlOptions ?? new PostgreSqlStorageOptions(); var storage = new PostgreSqlTagsServiceStorage(sqlOptions); (jobStorage ?? JobStorage.Current).Register(options, storage); var config = configuration.UseTags(options); return(config); }
/// <summary> /// Configures Hangfire to use Tags. /// </summary> /// <param name="configuration">Global configuration</param> /// <param name="options">Options for tags</param> /// <param name="redisOptions">Options for Redis storage</param> /// <param name="jobStorage">The jobStorage for which this configuration is used.</param> /// <returns></returns> public static IGlobalConfiguration UseTagsWithRedis(this IGlobalConfiguration configuration, TagsOptions options = null, RedisStorageOptions redisOptions = null, JobStorage jobStorage = null) { options = options ?? new TagsOptions(); redisOptions = redisOptions ?? new RedisStorageOptions(); var storage = new RedisTagsServiceStorage(redisOptions); (jobStorage ?? JobStorage.Current).Register(options, storage); var config = configuration.UseTags(options).UseFilter(new RedisStateFilter(storage)); return(config); }
/// <summary> /// Configures Hangfire to use Tags. /// </summary> /// <param name="configuration">Global configuration</param> /// <param name="options">Options for tags</param> /// <param name="sqlOptions">Options for sql storage</param> /// <returns></returns> public static IGlobalConfiguration UseTagsWithSQLite(this IGlobalConfiguration configuration, TagsOptions options = null, SQLiteStorageOptions sqlOptions = null) { options = options ?? new TagsOptions(); sqlOptions = sqlOptions ?? new SQLiteStorageOptions(); options.Storage = new SQLiteTagsServiceStorage(sqlOptions); TagsServiceStorage.Current = options.Storage; var config = configuration.UseTags(options); return(config); }
/// <summary> /// Configures Hangfire to use Tags. /// </summary> /// <param name="configuration">Global configuration</param> /// <param name="options">Options for tags</param> /// <param name="mongoOptions">Options for Mongo storage</param> /// <returns></returns> public static IGlobalConfiguration UseTagsWithMongo(this IGlobalConfiguration configuration, TagsOptions options = null, MongoStorageOptions mongoOptions = null) { options = options ?? new TagsOptions(); mongoOptions = mongoOptions ?? new MongoStorageOptions(); options.Storage = new MongoTagsServiceStorage(mongoOptions); var config = configuration.UseTags(options); JobsSidebarMenu.Items.RemoveAll(x => x.Method.Module.Assembly == typeof(TagsOptions).Assembly); JobsSidebarMenu.Items.Add(page => new MenuItem("Tags", page.Url.To("/tags/search")) { Active = page.RequestPath.StartsWith("/tags/search"), Metric = new DashboardMetric("tags:count", razorPage => { return(new Metric(((MongoTagsServiceStorage)options.Storage).GetTagsCount())); }) }); return(config); }
/// <summary> /// Configures Hangfire to use Tags. /// </summary> /// <param name="configuration">Global configuration</param> /// <param name="multiplexer"></param> /// <param name="options">Options for tags</param> /// <param name="redisOptions">Options for mysql storage</param> /// <returns></returns> public static IGlobalConfiguration UseTagsWithRedis(this IGlobalConfiguration configuration, IConnectionMultiplexer multiplexer, TagsOptions options = null, RedisStorageOptions redisOptions = null) { options = options ?? new TagsOptions(); redisOptions = redisOptions ?? new RedisStorageOptions() { Db = multiplexer.GetDatabase().Database }; GlobalStateHandlers.Handlers.Add(new SucceededStateHandler(redisOptions, multiplexer)); GlobalStateHandlers.Handlers.Add(new DeletedStateHandler(redisOptions, multiplexer)); GlobalStateHandlers.Handlers.Add(new FailedStateHandler(redisOptions, multiplexer)); GlobalStateHandlers.Handlers.Add(new ScheduledStateHandler(redisOptions, multiplexer)); GlobalStateHandlers.Handlers.Add(new EnqueuedStateHandler(redisOptions, multiplexer)); GlobalStateHandlers.Handlers.Add(new ProcessingStateHandler(redisOptions, multiplexer)); GlobalStateHandlers.Handlers.Add(new AwaitingStateHandler(redisOptions, multiplexer)); GlobalJobFilters.Filters.Add(new AutomaticRetryFilter(redisOptions, multiplexer)); options.Storage = new RedisTagsServiceStorage(multiplexer, redisOptions); return(configuration.UseTags(options)); }
/// <summary> /// Configures Hangfire to use Tags. /// </summary> /// <param name="configuration">Global configuration</param> /// <param name="jobStorage">Job storage</param> /// <param name="options">Options for tags</param> /// <param name="sqlOptions">Options for sql storage</param> /// <returns></returns> public static IGlobalConfiguration UseTagsWithSql( this IGlobalConfiguration configuration, SqlServerStorage jobStorage, TagsOptions options = null, SqlServerStorageOptions sqlOptions = null) { if (jobStorage == null) { throw new ArgumentNullException(nameof(jobStorage)); } options = options ?? new TagsOptions(); sqlOptions = sqlOptions ?? new SqlServerStorageOptions(); options.Storage = new SqlTagsServiceStorage(sqlOptions, jobStorage); TagsServiceStorage.Current = options.Storage; var config = configuration.UseTags(options, jobStorage: jobStorage); return(config); }