日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
快速上手Hangfire

Hangfire是一個(gè)開(kāi)源且商業(yè)免費(fèi)使用的工具函數(shù)庫(kù)??梢宰屇惴浅H菀椎卦贏SP.NET應(yīng)用(也可以不在ASP.NET應(yīng)用)中執(zhí)行多種類(lèi)型的后臺(tái)任務(wù),而無(wú)需自行定制開(kāi)發(fā)和管理基于Windows Service后臺(tái)任務(wù)執(zhí)行器。且任務(wù)信息可以被持久保存。內(nèi)置提供集成化的控制臺(tái)。

汝南網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司成立于2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。

要求

Hangfire 適用于大多數(shù) .NET 平臺(tái):.NET Framework 4.5 或更高版本、.NET Core 1.0 或更高版本,或任何與 .NET Standard 1.3 兼容的平臺(tái)。您可以將它與幾乎任何應(yīng)用程序框架集成,包括 ASP.NET、ASP.NET Core、控制臺(tái)應(yīng)用程序、Windows 服務(wù)、WCF,以及社區(qū)驅(qū)動(dòng)的框架,如 Nancy 或 ServiceStack。

存儲(chǔ)

存儲(chǔ)是 Hangfire 保存與后臺(tái)作業(yè)處理相關(guān)的所有信息的地方。類(lèi)型、方法名稱(chēng)、參數(shù)等所有細(xì)節(jié)都被序列化并放入存儲(chǔ)中,沒(méi)有數(shù)據(jù)保存在進(jìn)程的內(nèi)存中。存儲(chǔ)子系統(tǒng)在 Hangfire 中被很好地抽象出來(lái),可以為 RDBMS 和 NoSQL 解決方案實(shí)現(xiàn)。

這是您必須做出的主要決定,也是開(kāi)始使用框架之前所需的唯一配置。以下示例顯示如何使用 SQL Server 數(shù)據(jù)庫(kù)配置 Hangfire。請(qǐng)注意,連接字符串可能會(huì)有所不同,具體取決于您的環(huán)境。

GlobalConfiguration.Configuration
   .UseSqlServerStorage(@"Server=.\SQLEXPRESS; Database=Hangfire.Sample; Integrated Security=True");

客戶端

Client 負(fù)責(zé)創(chuàng)建后臺(tái)作業(yè)并將它們保存到 Storage 中。后臺(tái)作業(yè)是一個(gè)應(yīng)該在當(dāng)前執(zhí)行上下文之外執(zhí)行的工作單元,例如在后臺(tái)線程、其他進(jìn)程中,甚至在不同的服務(wù)器上——這一切都可以通過(guò) Hangfire 實(shí)現(xiàn),即使沒(méi)有額外的配置。

BackgroundJob.Enqueue(() => Console.WriteLine("Hello, world!"));

請(qǐng)注意,這不是委托,而是表達(dá)式樹(shù)。Hangfire 不是立即調(diào)用該方法,而是序列化類(lèi)型 ( System.Console)、方法名稱(chēng) ( WriteLine,帶有所有參數(shù)類(lèi)型以便稍后識(shí)別它) 和所有給定的參數(shù),并將其放入 Storage。

服務(wù)器

Hangfire Server 通過(guò)查詢(xún)存儲(chǔ)來(lái)處理后臺(tái)作業(yè)。粗略地說(shuō),它是一組后臺(tái)線程,它們偵聽(tīng) Storage 以獲取新的后臺(tái)作業(yè),并通過(guò)反序列化類(lèi)型、方法和參數(shù)來(lái)執(zhí)行它們。

您可以將此后臺(tái)作業(yè)服務(wù)器放置在您想要的任何進(jìn)程中,包括像 ASP.NET 這樣的危險(xiǎn)進(jìn)程——即使您終止了一個(gè)進(jìn)程,您的后臺(tái)作業(yè)也會(huì)在重新啟動(dòng)后自動(dòng)重試。因此,在 Web 應(yīng)用程序的基本配置中,您不再需要使用 Windows 服務(wù)進(jìn)行后臺(tái)處理。

using (new BackgroundJobServer())
{
   Console.ReadLine();
}

安裝

Hangfire 作為幾個(gè) NuGet 包分發(fā),從主要的 Hangfire.Core 開(kāi)始,它包含所有主要類(lèi)和抽象。其他包如 Hangfire.SqlServer 提供功能或抽象實(shí)現(xiàn)。要開(kāi)始使用 Hangfire,請(qǐng)安裝主軟件包并選擇可用的存儲(chǔ)空間之一。

Visual Studio 2017 發(fā)布后,出現(xiàn)了一種全新的 NuGet 包安裝方式。所以我放棄了列出安裝 NuGet 包的所有方法,并回退到使用該dotnet應(yīng)用程序幾乎在任何地方都可用的方法。

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

配置

使用GlobalConfiguration類(lèi)執(zhí)行配置。它的Configuration屬性提供了很多擴(kuò)展方法,既有來(lái)自 Hangfire.Core 的,也有來(lái)自其他包的。如果你安裝了一個(gè)新的包,不要猶豫,檢查是否有新的擴(kuò)展方法。

GlobalConfiguration.Configuration
   .SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
   .UseSimpleAssemblyNameTypeSerializer()
   .UseRecommendedSerializerSettings()
   .UseSqlServerStorage("Database=Hangfire.Sample; Integrated Security=True;", new SqlServerStorageOptions
   {
       CommandBatchMaxTimeout = TimeSpan.FromMinutes(5),
       SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5),
       QueuePollInterval = TimeSpan.Zero,
       UseRecommendedIsolationLevel = true,
       UsePageLocksOnDequeue = true,
       DisableGlobalLocks = true
   })
   .UseBatches()
   .UsePerformanceCounters();

方法調(diào)用可以鏈接起來(lái),因此不需要一次又一次地使用類(lèi)名。全局配置是為了簡(jiǎn)單起見(jiàn),幾乎每個(gè) Hangfire 類(lèi)都允許您指定存儲(chǔ)、過(guò)濾器等的覆蓋。在 ASP.NET Core 環(huán)境中,全局配置類(lèi)隱藏在AddHangfire方法中。

用法

以下是所有運(yùn)行中的 Hangfire 組件,作為打印“Hello, world!”的完整工作示例。來(lái)自后臺(tái)線程的消息。您可以注釋與服務(wù)器相關(guān)的行,并多次運(yùn)行該程序——只要您再次取消注釋這些行,就會(huì)處理所有后臺(tái)作業(yè)。

using System;
using Hangfire;
using Hangfire.SqlServer;

namespace ConsoleApplication2
{
   class Program
   {
       static void Main()
       {
           GlobalConfiguration.Configuration
               .SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
               .UseColouredConsoleLogProvider()
               .UseSimpleAssemblyNameTypeSerializer()
               .UseRecommendedSerializerSettings()
               .UseSqlServerStorage("Database=Hangfire.Sample; Integrated Security=True;", new SqlServerStorageOptions
               {
                   CommandBatchMaxTimeout = TimeSpan.FromMinutes(5),
                   SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5),
                   QueuePollInterval = TimeSpan.Zero,
                   UseRecommendedIsolationLevel = true,
                   UsePageLocksOnDequeue = true,
                   DisableGlobalLocks = true
               });

           BackgroundJob.Enqueue(() => Console.WriteLine("Hello, world!"));

           using (var server = new BackgroundJobServer())
           {
               Console.ReadLine();
           }
       }
   }
}

標(biāo)題名稱(chēng):快速上手Hangfire
新聞來(lái)源:http://m.5511xx.com/article/dpedehd.html