4

是否可以让函数将数据返回给调用者函数但继续执行?

我正在维护一个 Web 应用程序,该应用程序需要客户端服务在使用该应用程序的任何人的机器上的后台运行。服务器通过 RPC 连接到用户的客户端。客户端是一组存储在 GitHub 上的 Python 脚本,需要使用 Web 应用程序上的按钮进行更新。该更新要求客户端从 GitHub 拉取最新代码,然后自行重启。我想要的是客户端内部的更新方法将有关更新状态的信息发回服务器,然后将其显示给用户。因此,此信息将类似于:“正在从 GitHub 下载...”、“已完成下载。正在重新启动”、“已成功更新”。

4

2 回答 2

2

使用 Python生成器,特别是该yield语句可以满足您的要求。

于 2013-03-09T22:50:10.157 回答
0

您可以使用 celery 或类似的东西在后台完成您的长期工作,并将状态信息存储在某处。只需使用 AJAX 或 websockets 拉取状态更新并刷新页面上的状态。您还可以找到一些在 JS 上创建的 RabbitMQ 接口,如果您不想将结果存储在 DB 中,您可以使用这些接口获取更新。

这也可能有帮助:django.http.StreamingHttpResponse

于 2013-03-09T22:53:40.977 回答