如何 return 来自 Hangfire 的 return 值
How to return a return value from Hangfire
我在成功作业的 Hangfire 仪表板中注意到了这个字段:
我很乐意在其中添加一些数据,以便为我提供有关该工作所做内容的更多信息。
我该怎么做?
我搜索了 google,检查了 Hangfire 文档等,但没有成功 - 可能是因为 "result" 在这种情况下是一个非常棘手的关键字。
"Result" 字段显示 output/result 您的方法 returns。
您可以 return 一个字符串或对象,Hangfire 会将其转换为 JSON。
您的 "Result" 字段包含序列化错误,Hangfire 无法序列化 returned 对象但没有任何代码我无法进一步帮助您。
请参阅下面的示例屏幕截图。
要以编程方式获取返回值,请使用 IMonitoringApi
。
例如。获取 List<TReturn>
:
的辅助方法
List<TReturn> GetReturnedItems<TReturn>(string jobId)
{
IMonitoringApi jobMonitoringApi = JobStorage.Current.GetMonitoringApi();
JobDetailsDto job = jobMonitoringApi.JobDetails(jobId);
string resultSerialized = job.History[0].Data["Result"];
List<TReturn> returnedItems = JsonConvert.DeserializeObject<List<TReturn>>(resultSerialized);
return returnedItems;
}
我在成功作业的 Hangfire 仪表板中注意到了这个字段:
我很乐意在其中添加一些数据,以便为我提供有关该工作所做内容的更多信息。
我该怎么做?
我搜索了 google,检查了 Hangfire 文档等,但没有成功 - 可能是因为 "result" 在这种情况下是一个非常棘手的关键字。
"Result" 字段显示 output/result 您的方法 returns。
您可以 return 一个字符串或对象,Hangfire 会将其转换为 JSON。
您的 "Result" 字段包含序列化错误,Hangfire 无法序列化 returned 对象但没有任何代码我无法进一步帮助您。
请参阅下面的示例屏幕截图。
要以编程方式获取返回值,请使用 IMonitoringApi
。
例如。获取 List<TReturn>
:
List<TReturn> GetReturnedItems<TReturn>(string jobId)
{
IMonitoringApi jobMonitoringApi = JobStorage.Current.GetMonitoringApi();
JobDetailsDto job = jobMonitoringApi.JobDetails(jobId);
string resultSerialized = job.History[0].Data["Result"];
List<TReturn> returnedItems = JsonConvert.DeserializeObject<List<TReturn>>(resultSerialized);
return returnedItems;
}