ABP文檔 - Hangfire 集成


文檔目錄

 

本節內容:

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

 

簡介

Hangfire是一個綜合的后台作業管理器,可以在ABP里集成它替代默認的后台作業管理器,你可以為Hangfire使用相同的后台作業Api,因此你的代碼不依賴於Hangfire,但是,如果你喜歡你可以直接使用Hangfire的API。

 

集成

首先, 安裝Abp.HangFire nuget包到你的項目,然后可以為Hangfire安裝任何存儲,非常通用的是Sql Server存儲(查看Hangfire.SqlServer nuget 包),在安裝完這些包后,配置ABP,讓它使用Hangfire,如下所示:

[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中數據庫連接的名稱)。

Hangfire需要在你的數據庫創建結構的許可,因為它在首次運行時,創建它自己的結果和表。更多信息查看Hangfire文檔

 

Hangfire 面板授權

Hangfire可以提供一個面板頁面,實時顯示所有后台作業的狀態,你可以按它自己的文檔描述那樣配置,默認情況下,所有用戶都可以使用這個面板頁面,不需要授權,你可以用定義在Abp.HangFire包里的AbphangfireAuthorizationFilter類,把它集成到ABP的授權系統里。配置示例:

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


免責聲明!

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



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