让 Hangfire 使用 MongoDB 存储
发布时间:2025-05-15 16:17:07
作者:益华网络
来源:undefined
浏览量(2)
点赞(3)
摘要:本文转载自微信公众号「后端Q 」,作者conan 。转载本文请联系后端Q 公众号。 MongoDB 支持Hangfire库。通过使用这个库,您可以将所有作业信息存储在 MongoDB 中。 要安装 Hangfire MongoDB Storage,请在 Nuget 包管理器控制台中运行以下命令:PM>Install-Pa
本文转载自微信公众号「后端Q 」,作者conan 。转载本文请联系后端Q 公众号。
MongoDB 支持Hangfire库。通过使用这个库,您可以将所有作业信息存储在 MongoDB 中。
要安装 Hangfire MongoDB Storage,请在 Nuget 包管理器控制台中运行以下命令:
PM> Install-Package Hangfire.Mongo public void ConfigureServices(IServiceCollection services) { var mongoUrlBuilder = new MongoUrlBuilder("mongodb://localhost/jobs"); var mongoClient = new MongoClient(mongoUrlBuilder.ToMongoUrl()); // Add Hangfire services. Hangfire.AspNetCore nuget required services.AddHangfire(configuration => configuration .SetDataCompatibilityLevel(CompatibilityLevel.Version_170) .UseSimpleAssemblyNameTypeSerializer() .UseRecommendedSerializerSettings() .UseMongoStorage(mongoClient, mongoUrlBuilder.DatabaseName, new MongoStorageOptions { MigrationOptions = new MongoMigrationOptions { MigrationStrategy = new MigrateMongoMigrationStrategy(), BackupStrategy = new CollectionMongoBackupStrategy() }, Prefix = "hangfire.mongo", CheckConnection = true }) ); // Add the processing server as IHostedService services.AddHangfireServer(serverOptions => { serverOptions.ServerName = "Hangfire.Mongo server 1"; }); // Add framework services. } var options = new MongoStorageOptions { MigrationOptions = new MongoMigrationOptions { MigrationStrategy = new DropMongoMigrationStrategy(), BackupStrategy = new NoneMongoBackupStrategy() } }; GlobalConfiguration.Configuration.UseMongoStorage("mongodb://localhost/jobs", options); app.UseHangfireServer(); app.UseHangfireDashboard();Throw
这是默认的迁移策略。如果架构版本不匹配,它将抛出InvalidOperationException,永远不会让您启动并运行。因此,它迫使您决定什么迁移策略最适合您,同时确保数据的安全。
Drop
这只需删除现有的Hangfire.Mongo数据库并更新模式版本。没有绒毛,准备从头开始。这是一个完美的策略,如果你在创业时把所有的工作都安排好。
Migrate
这将把数据库从一个模式版本迁移到下一个模式版本,直到达到所需的模式版本。并不是所有的数据都可以迁移,这就是为什么会发生一些数据丢失的原因。在投入生产前,请谨慎使用并仔细测试。我们不对数据丢失负责。
注意:只支持前向迁移。如果需要还原到以前的架构版本,则需要手动删除或还原以前的数据库。
https://github.com/sergeyzwezdin/Hangfire.Mongo
扫一扫,关注我们
声明:本文由【益华网络】编辑上传发布,转载此文章须经作者同意,并请附上出处【益华网络】及本页链接。如内容、图片有任何版权问题,请联系我们进行处理。
3