Hangfire 重复工作失败,没有任何提及
Hangfire recurring job failed without any mention
我使用 SQL 服务器存储 Hangfire 数据和自写记录器来记录我的 ASP.NET MVC 5 站点的 Hangfire 中的所有内容。问题是我可以启动 Hangfire,配置它,添加新的重复作业没有任何问题,但它就是不起作用(Hangfire.Job
table 中的失败状态)。
我使用这个OwinStartup
配置:
public static void ConfigureHangfire(IAppBuilder app, string connectionName)
{
var options = new SqlServerStorageOptions
{
QueuePollInterval = TimeSpan.FromSeconds(10)
};
GlobalConfiguration.Configuration.UseSqlServerStorage(connectionName, options);
// Do not try to rerun failed jobs by default!
GlobalJobFilters.Filters.Add(new AutomaticRetryAttribute { Attempts = 0 });
// Add logs into passed log
LogProvider.SetCurrentLogProvider(new MyLogProvider()));
app.UseHangfireServer();
}
我有两个问题:
- 我怎样才能让它发挥作用?
- 为什么我没有收到任何日志错误消息?
我找到了所有问题的答案:
首先,在我评论了这一行之后,我的日志开始工作了:
GlobalJobFilters.Filters.Add(new AutomaticRetryAttribute { Attempts = 0 });
我尝试将尝试次数更改为 1,但仍然没有用。只有对此代码的完整评论有帮助。这是一个错误吗?说实话,我也这么认为。
在发表评论后,我有机会收到一条问题消息。问题是拥有被调用方法的 class 不包含无参数构造函数。
我使用 SQL 服务器存储 Hangfire 数据和自写记录器来记录我的 ASP.NET MVC 5 站点的 Hangfire 中的所有内容。问题是我可以启动 Hangfire,配置它,添加新的重复作业没有任何问题,但它就是不起作用(Hangfire.Job
table 中的失败状态)。
我使用这个OwinStartup
配置:
public static void ConfigureHangfire(IAppBuilder app, string connectionName)
{
var options = new SqlServerStorageOptions
{
QueuePollInterval = TimeSpan.FromSeconds(10)
};
GlobalConfiguration.Configuration.UseSqlServerStorage(connectionName, options);
// Do not try to rerun failed jobs by default!
GlobalJobFilters.Filters.Add(new AutomaticRetryAttribute { Attempts = 0 });
// Add logs into passed log
LogProvider.SetCurrentLogProvider(new MyLogProvider()));
app.UseHangfireServer();
}
我有两个问题:
- 我怎样才能让它发挥作用?
- 为什么我没有收到任何日志错误消息?
我找到了所有问题的答案:
首先,在我评论了这一行之后,我的日志开始工作了:
GlobalJobFilters.Filters.Add(new AutomaticRetryAttribute { Attempts = 0 });
我尝试将尝试次数更改为 1,但仍然没有用。只有对此代码的完整评论有帮助。这是一个错误吗?说实话,我也这么认为。
在发表评论后,我有机会收到一条问题消息。问题是拥有被调用方法的 class 不包含无参数构造函数。