Hangfire入門(任務調度)


一、簡介

    英文官網: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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM