如何从 Hangfire 返回返回值

Kje*_*sen 10 c# hangfire

我注意到 Hangfire 仪表板中的这个字段表示成功的工作:

在此输入图像描述

我很乐意在其中添加一些数据,以便为我提供有关该工作的更多信息。

我该怎么做呢?

我搜索了谷歌,检查了 Hangfire 文档等,但没有运气 - 可能是因为“结果”是在这种情况下搜索的一个非常棘手的关键字。

小智 11

“结果”字段显示您的方法返回的输出/结果。

您可以返回一个字符串或对象,Hangfire 会将其转换为 JSON。

您的“结果”字段包含序列化错误,Hangfire 无法序列化返回的对象,但没有任何代码我无法进一步帮助您。

请参阅下面的示例屏幕截图。

代码: 结果: 代码: 结果:


小智 5

要以编程方式获取返回值,请使用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;
}
Run Code Online (Sandbox Code Playgroud)