1

我有一个用 Python 2.7 编写的长时间运行的进程,我想在生成 KML 文件时将 KML 文件异步发送到我的 GWT 应用程序。

我一直在尝试确定我可以使用哪个 Python Web 框架作为 Python 进程的后端,这可能允许 Web 应用程序托管在 Google AppEngine 上。

我能够使用 Cherrypy 编写一个简单的 python 网络服务器,它使用 JSON 从后端使用 http 请求将 kml 发送到 GWT;但是,我希望文件在生成时发送到 GWT,因为每个文件之间可能需要几分钟。实现这一目标的相对简单但有效的方法是什么?(彗星?长轮询?Websockets?)

在研究了更多的 python web 框架之后,我开始尝试使用 Tornado,因为它是非阻塞的,并且似乎可以返回数据,因为它可能使用长轮询生成,如本答案中所述。但是,看起来 GAE 需要 WSGI,它不允许 Tornado 网络服务器是非阻塞的。

我已经阅读了类似问题的答案,例如这个。但是,我不确定 Web 框架、GWT 或 GAE 中的更新是否改变了当今最好的选择,或者其中一些答案是否适用于我的案例。

你会推荐我使用什么 Python Web 框架来使用长轮询或其他相对简单的方法将数据发送到我的异步 GWT 应用程序?我可以将这个 Web 框架与 GAE 一起使用,还是需要使用其他东西?

4

1 回答 1

3

如果我正确理解了这个问题,你可能不需要任何特殊的框架,你可以用你所拥有的来解决它:Tasks APIChannel API

使用 Tasks API,您可以执行较长的任务,当任务完成时,您会收到通知。您可以将其与 Channel API 结合使用,以便在特定任务完成时将消息直接推送到客户端。

您还可以使用延迟库来简化您的任务生活,甚至可以使用PubNub进行推送通知,因为设置更容易并且您可以同时拥有许多订阅者。

于 2012-09-29T17:15:40.133 回答