从Python函数返回但继续执行该函数
有没有办法让一个函数在返回数据给调用它的函数后,继续执行下去?
我在维护一个网页应用,这个应用需要在使用它的人的电脑上运行一个客户端服务。服务器通过远程过程调用(RPC)连接到用户的客户端。这个客户端是一些存放在GitHub上的Python脚本,需要通过网页应用上的一个按钮进行更新。更新的过程是客户端从GitHub上拉取最新的代码,然后自己重启。我想要的是,客户端里面的更新方法能够把更新状态的信息反馈给服务器,这样就可以显示给用户。这些信息可能是这样的:“正在从GitHub下载...”,“下载完成,正在重启”,“更新成功。”
2 个回答
0
你可以使用celery或者类似的工具,把那些需要很长时间才能完成的任务放到后台去运行,同时把一些状态信息存储起来。然后你可以通过AJAX或者websockets来获取状态更新,并在页面上刷新显示这些状态。如果你不想把结果存储在数据库里,还可以找到一些用JS写的RabbitMQ接口,这样也能获取更新。
另外,这个链接可能对你有帮助: django.http.StreamingHttpResponse