我在我的 MVC webapp 中使用 Hangfire。我是这样配置的:
GlobalConfiguration.Configuration
.UseMongoStorage(mongoConnectionString, mongoDatabaseName);
app.UseHangfireServer();
当我运行应用程序时,我看到IIS Worker Process
它不断占用几乎 40% 的 CPU。
删除它会使应用程序正常工作。
怎么了?
我在我的 MVC webapp 中使用 Hangfire。我是这样配置的:
GlobalConfiguration.Configuration
.UseMongoStorage(mongoConnectionString, mongoDatabaseName);
app.UseHangfireServer();
当我运行应用程序时,我看到IIS Worker Process
它不断占用几乎 40% 的 CPU。
删除它会使应用程序正常工作。
怎么了?
Hangfire.Mongo从 0.2.2 版开始使用新版本的mongocsharpdriver包,在与 Mongo 交谈时迁移到异步 API。Hangfire 仍然使用同步方法,并且看起来“同步异步”包装器中存在错误。
一位用户报告说,在设置以下选项后,一切都很好。
CountersAggregateInterval = TimeSpan.FromMinutes(5);
JobExpirationCheckInterval = TimeSpan.FromHours(1);
但是,该修复程序目前不可用,另一种选择是将 Hangfire.Mongo 包降级到以前的版本。请参阅相关的GitHub 问题。