So erhalten Sie die Ausnahmedetails eines fehlgeschlagenen Hintergrundjobs mit Hangfire
Nov 25 2020
Ich verwende Hangfire, um einige Hintergrundjobs auszulösen, und überprüfe dann deren Fortschritt, um nach fehlgeschlagenen Jobs zu suchen.
IStorageConnection connection = JobStorage.Current.GetConnection();
JobData jobData = connection.GetJobData(jobId);
if (jobData.State == FailedState.StateName)
// Some how get exception details
Ich möchte die Ausnahme auslösen, die dazu geführt hat, dass der Job fehlgeschlagen ist. (Ich werfe gerade new Exception("test error")
meinen Job ein, um ihn auszuprobieren).
Ich kann anscheinend keine Dokumente oder Beispiele finden, wie ich diese Informationen erhalten kann. Ist das möglich?
Antworten
1 CodieCollinge Nov 25 2020 at 23:44
Nachdem ich eine Antwort auf eine andere Frage gesehen hatte, bei der GetMonitoringApi verwendet wurde, konnte ich sie hier verwenden, um die Ausnahmemeldung wie folgt abzurufen:
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;
}
Dies gibt mir die "test error"
Nachricht, die von meinem Job geworfen wurde. Erfolg!