C# ASP.Net核心2.2 Web API排队后台任务

C# ASP.Net核心2.2 Web API排队后台任务,c#,asp.net-core-mvc,asp.net-core-webapi,C#,Asp.net Core Mvc,Asp.net Core Webapi,我正在尝试使用排队后台任务实现搜索功能,但在返回排队任务的值时遇到问题 我有以下两个API: SearchUserAsync(SearchParameter参数) GetSearchResultAsync(内部id) SearchUserAsync API在队列中注册了一个后台任务,该任务将根据SearchParameter搜索用户的使用情况,但同时它将返回HTTP 202(已接受),该HTTP 202指示已使用响应头(“位置”)中带有排队任务id的GetSearchResultAsync AP

我正在尝试使用排队后台任务实现搜索功能,但在返回排队任务的值时遇到问题

我有以下两个API:

  • SearchUserAsync(SearchParameter参数)
  • GetSearchResultAsync(内部id)
  • SearchUserAsync API在队列中注册了一个后台任务,该任务将根据SearchParameter搜索用户的使用情况,但同时它将返回HTTP 202(已接受),该HTTP 202指示已使用响应头(“位置”)中带有排队任务id的GetSearchResultAsync API的URL接受请求以便稍后获得结果

    然后,客户端使用id(可能是排队任务的id)调用GetSearchResultAsync API,并在操作已执行时获取搜索操作的结果

    现在,我很难理解如何为排队任务分配id,以及如何存储排队任务的结果,以便在稍后调用GetSearchResultAsyncAPI时访问它

    我试图理解关于以下链接的文档,但无法掌握总体概念

    任何帮助都将不胜感激


    提前感谢。

    假设您可以成功地将任务排队到后台,您需要生成一个GUID,1)返回到客户端,2)在执行操作后用作操作结果的密钥。后台任务完成后,可以将GUID(作为键)和结果(作为值)添加到字典结构(可能在内存中或某些持久存储中)。另一个端点将尝试从保存所有结果的结构中检索该值(基于客户端发送的GUID)。不建议在完全不知道启动时会发生什么的情况下执行此操作。尝试使用类似这样的方法,假设您可以成功地将任务排队到后台,您需要的是生成一个GUID,1)返回到客户端,2)在执行操作后用作操作结果的键。后台任务完成后,可以将GUID(作为键)和结果(作为值)添加到字典结构(可能在内存中或某些持久存储中)。另一个端点将尝试从保存所有结果的结构中检索该值(基于客户端发送的GUID)。不建议在完全不知道启动时会发生什么的情况下执行此操作。试着使用类似于