gpt4 book ai didi

c# - 为 REST 服务异步返回 http 状态码 202?

转载 作者:行者123 更新时间:2023-11-30 17:14:59 24 4
gpt4 key购买 nike

我们有一个调用系统进程的 REST 服务,可能需要 2 分钟以上的时间来处理。由于在客户端上我不想等待 30 秒到 2 分钟才能从服务器返回响应,我可以向客户端返回 202 以通知它正在处理但不一定需要等待进程完成完成了吗?

有安全的方法来处理这个问题吗? (我确定这里存在线程安全问题,特别是如果服务可能同时受到大量请求的影响,因此创建大量线程可能不是解决方案。)

我们正在探索的是使用批处理,每 5 分钟左右检查一次数据库以检查需要生成的报告(这是系统进程的目的),但我对这种可能性感到好奇。

提前致谢

编辑最终产品实际上是生成的 PDF 报告,然后通过电子邮件发送给用户。我主要是想绕过不得不等待大约 2 分钟的时间来等待消费客户端的服务响应。

最佳答案

我认为服务立即返回 202 是可以的,因为它确认已成功收到创建 pdf 的请求。

您计划在数据库中记录未决请求并分批处理它们对我来说很有意义。如果每个 pdf 文件在没有错误地发送后(如消息队列/ worker 角色系统)被勾选为“完成”,我认为它会工作正常。

如果您不想使用数据库路由,您的服务端点可以生成另一个异步作业,然后返回 202。这样 pdf 作业会立即启动客户端会立即得到响应 - 但这在我看来确实有点困惑。

编辑:重新阅读您的问题 - 我认为您不能返回 202 并继续在同一个函数中进行处理。一旦您返回,就是这样(除非您生成另一个异步作业,如上所述)。

关于c# - 为 REST 服务异步返回 http 状态码 202?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8305647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com