当用户上传csv文件并接收新的csv文件作为响应时,GAE请求超时

时间:2014-02-15 17:05:56

标签: python google-app-engine

我在GAE上有一个应用程序从网络表单中获取csv输入并将其存储到blob中,使用csv文件中的输入执行一些操作以获取新信息,然后在self.response.out上使用csv.writer编写一个新的csv文件并提示用户下载它。它运作良好,但我的问题是如果超过60秒超时。我已经尝试将一些东西部分设置为任务队列中的任务,并且它可以工作,除了我不能让用户在运行时等待,并且没有办法调用写出来的帖子任务队列完成后自动执行新的csv文件,并让用户定期按下按钮以查看是否完成该操作不是最佳的。

除了使用任务队列并让用户必须定期手动按下按钮以查看任务是否完成之外,是否有更好的解决此类问题的方法?

2 个答案:

答案 0 :(得分:2)

您有很多选择:

  1. 使用客户端中的计时器定期检查(即每15秒)文件是否准备就绪。这是最简单的选项,只需要几行代码。

  2. 使用渠道API。它很优雅,但除非你经常遇到类似的问题,否则这样做太过分了。

  3. 将结果通过电子邮件发送给用户。

答案 1 :(得分:0)

如果您的问题是60秒的请求限制,您可以考虑使用允许您控制模块/版本的缩放类型的App Engine模块。基本上有三种缩放类型可用。

手动缩放

这样的模块不断运行。请求可以无限期运行。

基本缩放

这样的模块在应用程序收到请求时创建一个实例。当应用程序变为空闲时,该实例将被拒绝。请求可以无限期运行。

自动缩放

App Engine自成立以来一直使用的扩展策略。它基于请求率,响应延迟和其他应用程序指标。 HTTP请求有60秒的截止日期。

您可以找到更多详情here