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

How to get the exception details of a failed background job with 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") 来测试它)。

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

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

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" 消息。成功!