当前位置: 首页 > 科技观察

让Hangfire使用MongoDB来存储

时间:2023-03-20 23:15:54 科技观察

本文转载自微信公众号《后端Q》,作者柯南。转载请联系后台Q公众号。MongoDB支持Hangfire库。通过使用此库,您可以将所有作业信息存储在MongoDB中。要安装HangfireMongoDBStorage,请在Nuget包管理器控制台中运行以下命令:PM>Install-PackageHangfire.MongopublicvoidConfigureServices(IServiceCollectionservices){varmongoUrlBuilder=newMongoUrlBuilder("mongodb://localhost/jobs=");ToMongoUrl());//AddHangfireservices.Hangfire.AspNetCorenugetrequiredservices.AddHangfire(configuration=>configuration.SetDataCompatibilityLevel(CompatibilityLevel.Version_170).UseSimpleAssemblyNameTypeSerializer().UseRecommendedSerializerSettings().UseMongoStorage(mongoClient,mongoUrlBuilder.DatabaseName,newMongoStrongMigrationOptions{newMongoStrongMigrationOptions{newMongoMigrationMigrationOptions{新的MongoMigrationMigrationOptions=newMigrateMongoMigrationStrategy(),BackupStrategy=newCollectionMongoBackupStrategy()},Prefix="hangfire.mongo",CheckConnection=true}));//添加处理服务器为IHostedServiceservices.AddHangfireServer(serverOptions=>{serverOptions.ServerName="Hangfire.Mongoserver1";});//添加帧workservices。这是默认的迁移策略如果架构版本不匹配,它将抛出InvalidOperationException并且永远不会让您启动和运行。因此,它迫使您在保证数据安全的同时决定最适合您的迁移策略。删除这只是删除现有的Hangfire.Mongo数据库并更新模式版本。没有绒毛,准备从头开始。如果您在开始业务时已完成所有工作,那么这是一个完美的策略。迁移这会将数据库从一个模式版本迁移到下一个版本,直到达到所需的模式版本。并非所有数据都可以迁移,这就是为什么会发生一些数据丢失的原因。在投入生产之前谨慎使用并仔细测试。我们不对数据丢失负责。注意:仅支持向前迁移。如果需要恢复到以前的模式版本,则需要手动删除或恢复以前的数据库。https://github.com/sergeyzwezdin/Hangfire.Mongo