Hangfire定時任務(wù)
Hangfire定時任務(wù)
HangFire
- HangFire官方網(wǎng)址:https://www.hangfire.io/

- HangFire 中文文檔:https://www.bookstack.cn/read/Hangfire-zh-official/README.md
下載NuGut包

- Hangfire是基礎(chǔ)的包
- Hangfire.HttpJob 是儀表盤任務(wù)
連接數(shù)據(jù)庫
- CREATE DATABASE HangFireText 數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)表
- "ConnectionStrings": { "HangFire": "server=LAPTOP-TBKRP9BV;uid=sa;pwd=123456;database=HangFireText;TrustServerCertificate=True" }
配置連接數(shù)據(jù)庫

生成的表
配置HangFire

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), //隊(duì)列輪詢間隔
UseRecommendedIsolationLevel = true, //使用推薦隔離級別
UsePageLocksOnDequeue = true, //使用頁面鎖定取消排隊(duì)
DisableGlobalLocks = true, //禁用全局鎖
})).UseHangfireHttpJob());
- builder.Services.AddHangfireServer();
- 創(chuàng)建儀表盤登錄驗(yàn)證
app.UseHangfireDashboard("/Hangfire", new DashboardOptions
{
Authorization = new[] {new BasicAuthAuthorizationFilter(new BasicAuthAuthorizationFilterOptions
{
RequireSsl =false,
SslRedirect =false,
LoginCaseSensitive = true,
Users = new[]
{
//授權(quán)登錄
new BasicAuthAuthorizationUser
{
Login ="admin",
PasswordClear = "123456",
}
}
})}
});
app.UseRouting();
儀表盤使用
1.啟動swagger并復(fù)制路徑

- 更改后綴

- 儀表盤頁面


儀表盤核心功能,可以添加作業(yè),周期性運(yùn)行作業(yè)
通過cron表達(dá)式來給每一個作業(yè)添加周期
cron表達(dá)式網(wǎng)址 cron.ciding.cc
定時執(zhí)行日志功能
- 在項(xiàng)目中引用nlog日志
builder.Host.UseNLog();
- 控制器中創(chuàng)建方法

- 儀表盤新增日志任務(wù)

- 運(yùn)行日志方法

- 查看運(yùn)行效果


浙公網(wǎng)安備 33010602011771號