1. 程式人生 > 其它 >ASP.NET Core Library – Hangfire

ASP.NET Core Library – Hangfire

前言

以前寫過 Hangfire 的學習筆記, 但寫的很亂. 這篇來做個整理.

介紹

Hangfire 是用來做 server task 的, 定時任務, delay 執行之類的. 它可以做到分鐘級別的 schedule, 任務會通過 SQL Server 來管理 (也可以支援其它 database 但不推薦啦)

安裝 & Startup

參考: 官網教程

安裝 nuget

dotnet add package Hangfire.Core
dotnet add package Hangfire.AspNetCore
dotnet add package Hangfire.SqlServer

startup

builder.Services.AddHangfire(configuration => configuration
    .SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
    .UseSimpleAssemblyNameTypeSerializer()
    .UseRecommendedSerializerSettings()
    .UseSqlServerStorage("Server=192.168.1.152;Database=TestHangfire;Trusted_Connection=True;MultipleActiveResultSets=true
", new SqlServerStorageOptions { CommandBatchMaxTimeout = TimeSpan.FromMinutes(5), SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5), QueuePollInterval = TimeSpan.Zero, UseRecommendedIsolationLevel = true, DisableGlobalLocks = true })); builder.Services.AddHangfireServer();

配置不重要, 我按照官網 example 放的而已, 連結上 database 就可以了 (注: 要先建立好 database 哦, 不然會報錯, hangfire 會負責建立 tables)