我在 python 中有应用程序,使用 flask 和 iron worker。我希望实现以下场景:
- 用户按下网站上的按钮
- 任务已排队等待 worker
- worker 处理任务
- 工作人员完成任务,通知我的应用
- 我的应用将用户重定向到新端点
我目前停留在第 5 点的中间,我让工作人员成功完成工作并向我的应用程序中的特定端点发送 POST 请求。现在,我想以某种方式确定哪个用户调用了任务并将该用户重定向到我的应用程序中的新端点。我怎样才能做到这一点?我可以在工作负载中传递所有类型的数据,然后用 POST 返回它,问题是我如何为访问我的页面的特定用户调用重定向?
最佳答案
您可以按如下方式进行:
- 当用户按下按钮时,服务器启动任务,然后向客户端发送响应,可能是“请稍候...”类型的页面。除了响应,服务器还必须包含一个任务 ID,该 ID 引用 Javascript 可访问的任务。
- 客户端使用任务 ID 通过 ajax 轮询服务器关于任务完成状态。假设这是路线
/status/<taskid>
.这条路线返回true
或false
作为 JSON。它还可以返回可用于呈现进度条小部件的完成百分比。 - 当服务器报告任务完成时,客户端可以发出重定向到完成页面。如果需要告知客户端要重定向到的 URL 是什么,则状态路由可以将其包含在 JSON 响应中。
希望对您有所帮助!
关于python - 工作人员完成后重定向用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21558984/