【发布时间】:2023-02-25 15:55:00
【问题描述】:
我制作了一个生成 3d 模型的 API。有时这可能需要很长时间(> 5 分钟)。 当它成功时,它以文本形式返回状态代码为 200 的 3d 模型。当失败时,我返回状态代码为 400 的错误代码。
有什么方法/机制可以返回进程的进度吗?我怎么能这样做?浏览器将如何阅读?
干杯,谢谢!
【问题讨论】:
我制作了一个生成 3d 模型的 API。有时这可能需要很长时间(> 5 分钟)。 当它成功时,它以文本形式返回状态代码为 200 的 3d 模型。当失败时,我返回状态代码为 400 的错误代码。
有什么方法/机制可以返回进程的进度吗?我怎么能这样做?浏览器将如何阅读?
干杯,谢谢!
【问题讨论】:
您可以为此使用下一个逻辑:
/generateModel生成模型;operation_id;/getStatus并获得operation_id;{ status: 0, progress: 0.02 }。
可能的状态:
0 - 仍在不断进步 (0.00-0.99)({ status: 0, progress: 0.02 });200 - 完成({ status: 1 });other numbers-错误({ status: 500, message: "Internal error" });
done状态的响应时,客户端请求模型/getModel;error状态的响应,将显示。
【讨论】:
我最终使用了 bullMQ。它提供了很多功能,也适用于运行时间较长的进程。
【讨论】: