ABP文檔 - Hangfire 集成

文檔目錄html

 

本節內容:web

  • 簡介
  • 集成
  • Hangfire 面板受權

 

簡介數據庫

Hangfire是一個綜合的後臺做業管理器,能夠在ABP裏集成它替代默認的後臺做業管理器,你能夠爲Hangfire使用相同的後臺做業Api,所以你的代碼不依賴於Hangfire,可是,若是你喜歡你能夠直接使用Hangfire的API。app

 

集成ide

首先, 安裝Abp.HangFire nuget包到你的項目,而後能夠爲Hangfire安裝任何存儲,很是通用的是Sql Server存儲(查看Hangfire.SqlServer nuget 包),在安裝完這些包後,配置ABP,讓它使用Hangfire,以下所示:spa

[DependsOn(typeof (AbpHangfireModule))] public class MyProjectWebModule : AbpModule
{
    public override void PreInitialize()
    {
        Configuration.BackgroundJobs.UseHangfire(configuration => { configuration.GlobalConfiguration.UseSqlServerStorage("Default"); });       
    }

    //...
}

咱們添加了AbphangfireModule,讓它做爲一個依賴,並使用Configuration.BackgroundJobs.Usehangfire方法啓用和配置Hangfire(「Default」是web.config中數據庫鏈接的名稱)。code

Hangfire須要在你的數據庫建立結構的許可,由於它在首次運行時,建立它本身的結果和表。更多信息查看Hangfire文檔htm

 

Hangfire 面板受權中間件

Hangfire能夠提供一個面板頁面,實時顯示全部後臺做業的狀態,你能夠按它本身的文檔描述那樣配置,默認狀況下,全部用戶均可以使用這個面板頁面,不須要受權,你能夠用定義在Abp.HangFire包裏的AbphangfireAuthorizationFilter類,把它集成到ABP的受權系統裏。配置示例:blog

app.UseHangfireDashboard("/hangfire", new DashboardOptions
{
    Authorization = new[] { new AbpHangfireAuthorizationFilter() }
});

若是用戶已經登陸到應用,就會使用這個進行檢查,若是你須要一個額外的許可,你能夠把許可傳入它的構造器:

app.UseHangfireDashboard("/hangfire", new DashboardOptions
{
    Authorization = new[] { new AbpHangfireAuthorizationFilter("MyHangFireDashboardPermissionName") }
});

注意:UsehangifreDashboard應該在你的Startup類裏的受權中間件運行後調用(多是在最後一行)。不然,受權會一直失敗。

 

kid1412附:英文原文:http://www.aspnetboilerplate.com/Pages/Documents/Hangfire-Integration

相關文章
相關標籤/搜索