让 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

二维码

扫一扫,关注我们

声明:本文由【益华网络】编辑上传发布,转载此文章须经作者同意,并请附上出处【益华网络】及本页链接。如内容、图片有任何版权问题,请联系我们进行处理。

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

您身边的【网站建设专家】

搜索千万次不如咨询1次

主营项目:网站建设,手机网站,响应式网站,SEO优化,小程序开发,公众号系统,软件开发等

立即咨询 15368564009
在线客服
嘿,我来帮您!