提问人:martinkooij4 提问时间:11/15/2023 最后编辑:martinkooij4 更新时间:11/15/2023 访问量:36
如何在 Actix Web 中对长时间运行的任务提供网页反馈?
How can one give webpage feedback on a long running task in Actix web?
问:
我可能错过了它,但我找不到如何在 actix_web 中长时间运行的任务期间在网页上向用户提供反馈。程序是用 Rust 编写的。
摘要:我在“/calculate”上有一个进行长计算的路由。我现在有一个异步函数async fn calculate(webdata,identity,..)-> impl Responder {........HttpResponse::Ok().body(“Done result = xxxyxyxyy”},作为处理程序放在 App 的路由中。
这适用于简短的计算。对于长时间的计算,我可以看到我可以选择阻止网页,直到我得到结果,或者立即做出响应并将结果丢失到巨大的银河系虚空中(或者正如我在一些例子中发现的那样:进入println!终端;-))。
实际上,对于长时间的计算,我想在用户导航到“/calculate”时执行以下模式。
显示“工作.....”作为 HttpResponse
进行计算
显示“完成。result = xxxyxyxyxyx“作为 HttpResponse
我知道 web:block 和 web:spawn,但它们对于保护计算很有用,但我仍然只能设法从处理程序给出一个响应。我知道如何在更大的前端框架中做到这一点,例如 react,甚至可能是 yew,但我只是好奇我是否只在 actix_web 中缺少一种明显的方法来做到这一点。
注1:在我的应用程序中,它实际上不是一个计算,而是一组更复杂的操作。此外,实际的反应更加花哨和丰富多彩。
注意2:如果设置是这样的,我也可以有一个“停止”按钮来停止计算,那将是理想的。但这是下一步。
答: 暂无答案
评论
calculate
calc_rest