长任务结束后通知浏览器/页面

时间:2011-12-13 09:12:57

标签: python browser

我使用的是Python WebServer(CherryPy),但我想这个问题更开放,而且相当普遍。目前,我在点击按钮时有一些Ajax调用槽JQuery load,触发一些计算,以文件生成结束。

目前,一旦后台线程开始处理,我的load会在页面上返回指向服务器上生成的未来文件的链接。有几个文件要生成,整个过程可能需要几分钟。如果只能逐个文件地逐步获取文件,人们将如何才能显示文件链接? ...目前,链接已经死亡,直到有文件落后,我无法告诉用户链接何时生效。

更新:感谢JB Nizet。现在有人可以建议Python Thread安全数据结构编写吗?不太了解这个主题,也不知道从哪里开始。

1 个答案:

答案 0 :(得分:1)

轮询服务器以每n秒获取最新生成的文件(或生成的文件的完整列表),并在列表完成后停止轮询,或者在第一个ajax查询(启动生成过程的查询)之后停止轮询已经完成了。

生成文件的线程应该使共享的,线程安全的数据结构中的生成文件列表可用。