首页 > Web开发 > 详细

.Net Core定时调度hangfire:仪表板UI

时间:2021-07-12 22:28:11      阅读:30      评论:0      收藏:0      [点我收藏+]

仪表盘就是hangfire的网页界面,有要执行的任务、执行情况、报错等后台的敏感信息。

调用仪表盘的方法非常简单,在Starup文件中如下代码:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    //..
     app.UseHangfireDashboard();
    //..
}

在浏览器中输入‘ 你的地址/hangfire ‘即可访问。

为了安全仪表板只能本地访问,但是我们可以通过实现自己的IDashboardAuthorizationFilter接口来实现身份验证的访问,如下:

public class MyAuthorizationFilter : IDashboardAuthorizationFilter
{
    public bool Authorize(DashboardContext context)
    {
        var httpContext = context.GetHttpContext();
        // 允许所有经过身份验证的用户查看仪表板(存在潜在危险)。
        return httpContext.User.Identity.IsAuthenticated;
    }
}

或者通过使用 hangfire.dashboard.authorization 来快捷实现。

因为仪表盘中存在删除任务等关键操作,默认是关闭的,可以通过设置 IsReadOnlyFunc属性的 Dashboardoption来设置,如下:

app.UseHangfireDashboard("/hangfire", new DashboardOptions
{
    IsReadOnlyFunc = (DashboardContext context) => true
});

默认情况下,UseHangfireDashboard方法将仪表板映射到/hangfire路径,我们可以自己修改访问路径:

//映射到/jobs路径
app.UseHangfireDashboard("/jobs");

仪表盘的右上角存在一个返回站点的链接,我们可以对其进行更改:

// 更改返回站点的链接地址
var options = new DashboardOptions { AppPath = "http://your-app.net" };
// 使“返回站点”链接适用于子文件夹应用程序
var options = new DashboardOptions { AppPath = VirtualPathUtility.ToAbsolute("~") };
app.UseHangfireDashboard("/hangfire", options);

仪表盘不只是有一个,还可以存在多个,映射显示不同存储介质的存储信息:

var storage1 = new SqlServerStorage("Connection1");
var storage2 = new SqlServerStorage("Connection2");

app.UseHangfireDashboard("/hangfire1", new DashboardOptions(), storage1);
app.UseHangfireDashboard("/hangfire2", new DashboardOptions(), storage2);

.Net Core定时调度hangfire:仪表板UI

原文:https://www.cnblogs.com/xwc1996/p/14979140.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!