c# - 如何使用 Hangfire 获取失败的后台作业的异常详细信息

标签 c# hangfire

我正在使用 Hangfire 启动一些后台作业,然后我正在检查它们的进度,使用以下方法寻找失败的作业:

IStorageConnection connection = JobStorage.Current.GetConnection();
JobData jobData = connection.GetJobData(jobId);

if (jobData.State == FailedState.StateName)
   // Some how get exception details

我想抛出导致作业失败的异常。 (我目前在我的工作中抛出 new Exception("test error") 来测试它)。

我似乎找不到任何关于如何获取此信息的文档或示例,这可能吗?

最佳答案

看到an answer之后在另一个使用 GetMonitoringApi 的问题上,我可以在这里使用它来获取异常消息,如下所示:

if (jobData.State == FailedState.StateName)
{
  var failedJobsCount = JobStorage.Current.GetMonitoringApi()
      .FailedCount();

  var failedJob = JobStorage.Current.GetMonitoringApi()
      .FailedJobs(0, (int)failedJobsCount)
      .Where(j => j.Key == jobId)
      .SingleOrDefault();
  
  var exceptionMsg = failedJob.Value.ExceptionMessage;
}

这给了我从我的工作中抛出的 "test error" 消息。成功!

关于c# - 如何使用 Hangfire 获取失败的后台作业的异常详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65008173/

相关文章:

c# - 如何在 Mono.Cecil 中创建 Ldarg_S 指令?

c# - 从 dll 添加鼠标悬停摘要

c# - Xamarin.Forms - 更新 ItemSource 时 ViewCell 内的图像闪烁

servicestack - 将 Hangfire 与 ServiceStack 结合使用

c# - 取消或删除计划的作业-HangFire

asp.net-mvc - Hangfire 作业中的 Url.Action

c# - 静态与非静态方法

c# - OleDbCommand.ExecuteNonQuery() 不保存 ms 访问数据库中的更改

c# - 如何在删除作业之前检查作业是否存在于 Hangfire 中?

f# - 如何在F#中设置Hangfire授权?