从Python函数返回但继续执行该函数

时间:2013-03-09 22:48:11

标签: python

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

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

2 个答案:

答案 0 :(得分:2)

使用Python generators,特别是yield语句可以满足您的要求。

答案 1 :(得分:0)

你可以用芹菜或类似的东西在后台长时间运行你的工作,然后存储一些状态信息。只需使用AJAX或者页面上的websockets和刷新状态来提取状态更新。您还可以在JS上找到一些RabbitMQ接口,如果您不想将结果存储在数据库中,可以使用它来获取更新。

这也许会有所帮助:django.http.StreamingHttpResponse