过滤Hangfire成功的工作列表

时间:2016-03-09 10:57:02

标签: hangfire

有没有办法让 出现在成功作业列表中?

我目前有2个重复工作设置如下:

RecurringJob.AddOrUpdate("myQuickJob", () => CallRemoteService(quickCheckUrl)), Cron.Minutely());

RecurringJob.AddOrUpdate("myDailyJob", () => CallRemoteService(dailyJobUrl)), Cron.Daily(0));

一个是每日预定的工作,另一个是快速ping工作。我真的只对日常工作的结果(成功/失败)而不是快速工作感兴趣。 正如你可以想象的那样,快速工作的结果很快填满了工作清单,其中包含数百个我不感兴趣的成功电话,很难将日常工作隔离开来。

那么,有没有办法:

  1. 关闭快速作业的作业日志/显示
  2. 让工作名称显示在列表中。
  3. 我的职位列表仅显示所有条目:

    #238  Startup.CallRemoteService  7.234s  13 minutes ago  
    #237  Startup.CallRemoteService  7.424s  23 minutes ago  
    

    因此我无法区分myQuickJobmyDailyJob。可以在列表中更改作业名称,因此我看到myDailyJob而不是Startup.CallRemoteService

    TA

1 个答案:

答案 0 :(得分:0)

首先,关于你的第二个问题,答案很简单:使用下面的代理方法

RecurringJob.AddOrUpdate(
                 "myQuickJob", 
                 () => CallRemoteServiceQuickCheck(quickCheckUrl)), Cron.Minutely());
//                                      ^^^^^^^^^^
RecurringJob.AddOrUpdate(
                 "myDailyJob", 
                 () => CallRemoteService(dailyJobUrl)), Cron.Daily(0));

[...]
public void CallRemoteServiceQuickCheck(Uri url) {
    CallRemoteService(url));
}

,您的日志将显示为

#238  Startup.CallRemoteServiceQuickCheck  7.234s  13 minutes ago  
#237  Startup.CallRemoteService            7.424s  23 minutes ago  

现在针对您的其他问题,它更棘手。 我认为最简单的方法是添加一个新的菜单项" Filtered Succeded"在仪表板的左侧窗格中,按照以下方式启动应用程序:

        Hangfire.Dashboard.JobsSidebarMenu.Items.Add(
            (rp) => {
                var filteredSuccededUrl = "[your_url_here]";
                return new Hangfire.Dashboard.MenuItem("FilteredSucceded",
                                                       filteredSuccededUrl); });

您可以将此点指向您选择的网址。不太理想,但您可以使用成功页面的源代码来创建新页面here