一、簡介
英文官網:http://hangfire.io/
開源地址:https://github.com/HangfireIO
Hangfire 不依賴於具體的.NET應用類型,包含.NET 和.NET Core。
Hangfire 是一款強大的.NET開源后台任務利器,無需Windows服務/任務計划程序。
可以使用於ASP.NET 應用也可以使用於控制台。Hangfire 只需簡單幾句代碼即可創建新的不同種類的任務。
二、使用條件
1. .NET Framework 4.5
2. 持久存儲(SQL Azure, SQL Server 2008 R2及以上版本,Redis )
3. Newtonsoft.Json 版本 ≥ 5.0.1
三、安裝使用
1. 創建一個控制台項目,使用NuGet 命令行安裝,選擇對應的項目
2. PM> Install-Package Hangfire ,安裝會有一段時間,耐心等待
3. 安裝好后就可以在Main方法中使用了
class Program { static void Main(string[] args) { GlobalConfiguration.Configuration .UseColouredConsoleLogProvider() .UseSqlServerStorage("Server=.;User ID=sa;Password=123456;database=xxxx;Connection Reset=False;"); //支持基於隊列的任務處理:任務執行不是同步的,而是放到一個持久化隊列中,以便馬上把請求控制權返回給調用者。 // BackgroundJob.Enqueue(() => Console.WriteLine("Simple!")); //延遲任務執行:不是馬上調用方法,而是設定一個未來時間點再來執行。 // BackgroundJob.Schedule(() => Console.WriteLine("Reliable!"), TimeSpan.FromSeconds(5)); //循環任務執行:一行代碼添加重復執行的任務,其內置了常見的時間循環模式,也可基於CRON表達式來設定復雜的模式。 // RecurringJob.AddOrUpdate(() => Console.WriteLine("Transparent!"), Cron.Minutely);//注意最小單位是分鍾 using (var server = new BackgroundJobServer()) { BackgroundJob.Enqueue(() => Console.WriteLine("Simple111")); Console.WriteLine("Hangfire Server started. Press any key to exit..."); Console.ReadKey(); } } }
參考文章:
http://www.cnblogs.com/redmoon/p/4394962.html
http://www.cnblogs.com/huangchenqin/p/5210448.html
http://codeopinion.com/background-tasks/