如何 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;
}