Asp.net Core + Hangfire最终导致连接关闭或被释放
创始人
2024-09-14 10:30:57
0

问题描述: 使用Asp.net Core + Hangfire时,可能会遇到连接关闭或被释放的问题。

解决方法:

  1. 确保Hangfire的配置正确。在Startup.cs文件的ConfigureServices方法中添加Hangfire的服务配置,如下所示:
services.AddHangfire(configuration => configuration
    .SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
    .UseSimpleAssemblyNameTypeSerializer()
    .UseRecommendedSerializerSettings()
    .UseSqlServer(Configuration.GetConnectionString("HangfireConnection"))
    .UseMediatR());

services.AddHangfireServer();

其中,HangfireConnection是连接Hangfire的数据库连接字符串,可以根据实际情况进行配置。

  1. 确保Hangfire的数据库连接没有被关闭或释放。可以使用using语句来确保数据库连接在使用完毕后被正确关闭,如下所示:
using (var connection = JobStorage.Current.GetConnection())
{
    // 使用Hangfire连接执行操作
}
  1. 确保Hangfire的后台任务没有长时间运行。如果Hangfire的后台任务运行时间过长,可能会导致连接关闭或被释放。可以通过使用Hangfire的JobOptions配置来限制后台任务的运行时间,如下所示:
var options = new BackgroundJobServerOptions
{
    WorkerCount = Environment.ProcessorCount * 5,
    ShutdownTimeout = TimeSpan.FromSeconds(30),
    Queues = new[] { "default" },
    JobExpirationCheckInterval = TimeSpan.FromHours(1),
    HeartbeatInterval = TimeSpan.FromSeconds(30),
    ServerCheckInterval = TimeSpan.FromSeconds(30),
    ServerTimeout = TimeSpan.FromSeconds(30),
    SchedulePollingInterval = TimeSpan.FromSeconds(15),
    ServerName = Environment.MachineName
};

app.UseHangfireServer(options);

其中,ShutdownTimeout是设置后台任务的关闭超时时间,JobExpirationCheckInterval是设置后台任务的过期检查间隔时间。

  1. 确保Hangfire的数据库连接池配置正确。可以在appsettings.json文件中配置数据库连接池的最大连接数和连接超时时间,如下所示:
"ConnectionStrings": {
  "HangfireConnection": "Your Hangfire Connection String"
},
"DbConnectionPool": {
  "MaxPoolSize": 100,
  "ConnectionTimeout": 30
}

其中,MaxPoolSize是设置数据库连接池的最大连接数,ConnectionTimeout是设置数据库连接的超时时间。

通过以上方法,可以解决Asp.net Core + Hangfire导致连接关闭或被释放的问题。

相关内容

热门资讯

ai代打八分钟!好运大菠萝有挂... ai代打八分钟!好运大菠萝有挂的微扑克系统是有问题(原来真的有挂)-小红书;1、每一步都需要思考,不...
透明挂3分钟!德扑之星系统发牌... 透明挂3分钟!德扑之星系统发牌机制红龙扑克模拟器(一直真的有挂)-百度知乎小薇(透视辅助)致您一封信...
存在三分钟!wpk微扑克辅助是... 存在三分钟!wpk微扑克辅助是真的微扑克游戏辅助器(其实真的有挂)-知乎;1、wpk微扑克辅助是真的...
合作四分钟!线上微扑克代打德州... 合作四分钟!线上微扑克代打德州wpk德州有挂(一贯真的有挂)-知乎1、许多玩家不知道线上微扑克代打辅...
模拟器9分钟!微扑克辅助哪里有... 模拟器9分钟!微扑克辅助哪里有卖德扑之星里面可以隐藏入池率(果然真的有挂)-哔哩哔哩1、游戏颠覆性的...
大厅房六分钟!微扑克线上代打工... 大厅房六分钟!微扑克线上代打工具wepoke人有挂(原来真的有挂)-微博客户端;1、微扑克线上代打工...
存在4分钟!wpk有wpk职业... 存在4分钟!wpk有wpk职业代打(一贯真的有挂)-小红书;1、打开软件启动之后找到中间准星的标志长...
长期9分钟!哈糖大菠萝有挂微扑... 长期9分钟!哈糖大菠萝有挂微扑克有保险(就是真的有挂)-今日头条运哈糖大菠萝有挂辅助工具,进入游戏界...
针对七分钟!微扑克可以用模拟器... 针对七分钟!微扑克可以用模拟器aa扑克发牌机制(就是真的有挂)-知乎;1、完成微扑克可以用模拟器的残...
测试八分钟!wpk微扑克真的有... 测试八分钟!wpk微扑克真的有辅助插件云扑克有辅助软件(一般真的有挂)-今日头条1、wpk微扑克真的...