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")
目前正在投入我的工作来测试它)。
我似乎找不到任何有关如何获取此信息的文档或示例,这可能吗?
解决方案
在看到另一个使用 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"
从我的工作中抛出的信息。成功!
推荐阅读
- android - 更新到 API 28 后找不到资源样式/Widget.Design.CoordinatorLayout
- spring-boot - 使用 localdate 进行春季 jpa 审计
- java - 生成 8 对整数
- java - 如何在 Findbugs 中使用 Checker Framework 注释?
- c# - 从 IEnumerable 转换为 ISet
- node.js - 在 node.js 中未定义 URL
- laravel-5.6 - 填充的数组抛出未定义的偏移量:Laravel 5.6 中的 1
- android - 使用 Retrofit 和 Gson 从 Blogger Api JSON 中获取标签
- python - 将 Panda DataFrame 层叠在一起
- java - 如何在数字中插入逗号?