Hangfire定时任务
一、 HangFire
1. HangFire官方网址:
2. HangFire 中文文档:
二、 下载NuGut包
1. Hangfire是基础的包
2. Hangfire.HttpJob 是仪表盘任务
三、 连接数据库
1. CREATE DATABASE HangFireText 数据库创建数据表
2. "ConnectionStrings": { "HangFire": "server=LAPTOP-TBKRP9BV;uid=sa;pwd=123456;database=HangFireText;TrustServerCertificate=True" }
配置连接数据库
生成的表
四、 配置HangFire
1.
var Config = builder.Configuration;
builder.Services.AddHangfire(config => config
.SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
.UseSimpleAssemblyNameTypeSerializer()
.UseRecommendedSerializerSettings()
.UseStorage(new SqlServerStorage(
Config["ConnectionStrings:HangFire"],
new SqlServerStorageOptions
{
CommandBatchMaxTimeout = TimeSpan.FromMinutes(5), //命令批处理最大超时
SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5),//滑动隐形超时
QueuePollInterval = TimeSpan.FromSeconds(15), //队列轮询间隔
UseRecommendedIsolationLevel = true, //使用推荐隔离级别
UsePageLocksOnDequeue = true, //使用页面锁定取消排队
DisableGlobalLocks = true, //禁用全局锁
})).UseHangfireHttpJob());
2. builder.Services.AddHangfireServer();
3. 创建仪表盘登录验证
app.UseHangfireDashboard("/Hangfire", new DashboardOptions
{
Authorization = new[] {new BasicAuthAuthorizationFilter(new BasicAuthAuthorizationFilterOptions
{
RequireSsl =false,
SslRedirect =false,
LoginCaseSensitive = true,
Users = new[]
{
//授权登录
new BasicAuthAuthorizationUser
{
Login ="admin",
PasswordClear = "123456",
}
}
})}
});
app.UseRouting();
五、 仪表盘使用
1.启动swagger并复制路径
2. 更改后缀
3. 仪表盘页面
4.
仪表盘核心功能,可以添加作业,周期性运行作业
通过cron表达式来给每一个作业添加周期
cron表达式网址
六、 定时执行日志功能
1. 在项目中引用nlog日志
builder.Host.UseNLog();
2. 控制器中创建方法
3. 仪表盘新增日志任务
4. 运行日志方法
5. 查看运行效果
标签:Hangfire,builder,HangFire,任务,仪表盘,new,定时,true From: https://www.cnblogs.com/qibaidao/p/17627407.html