Hangfire로 실패한 백그라운드 작업의 예외 세부 정보를 얻는 방법

Nov 25 2020

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")현재 그것을 테스트하기 위해 내 직업을 던지고 있습니다 ).

이 정보를 얻을 수있는 방법에 대한 문서 나 예제를 찾을 수없는 것 같습니다. 가능합니까?

답변

1 CodieCollinge Nov 25 2020 at 23:44

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"내 직장에서 던져진 메시지를 제공합니다 . 성공!