Hangfire定时任务
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. 查看运行效果
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库