欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

让 Hangfire 使用 MongoDB 存储

发布时间:2023/12/4 55 豆豆
生活随笔 收集整理的这篇文章主要介绍了 让 Hangfire 使用 MongoDB 存储 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

MongoDB 支持Hangfire库。通过使用这个库,您可以将所有作业信息存储在 MongoDB 中。

要安装 Hangfire MongoDB Storage,请在 Nuget 包管理器控制台中运行以下命令:

PM> Install-Package Hangfire.Mongopublic void ConfigureServices(IServiceCollection services) {var mongoUrlBuilder = new MongoUrlBuilder("mongodb://localhost/jobs");var mongoClient = new MongoClient(mongoUrlBuilder.ToMongoUrl());// Add Hangfire services. Hangfire.AspNetCore nuget requiredservices.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 IHostedServiceservices.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

总结

以上是生活随笔为你收集整理的让 Hangfire 使用 MongoDB 存储的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。