我正在使用 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/