程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> <<ABP文檔>> Hangfire 集成,

<<ABP文檔>> Hangfire 集成,

編輯:關於.NET

<<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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved