应用引擎中的超时变通办法

时间:2010-09-29 14:32:41

标签: google-app-engine

我正在为App Engine中的银行应用程序构建一个演示。 我有一个用户表和股票表。

为了让我能够在应用程序中列出“Top Earners”,我在每个用户的条目中保存了“Total Amount”字段,以便稍后我可以使用ORDER BY进行选择。

我正在运行一个在Stocks表上运行的cron作业,并在User表中更新每个用户的“Total Amount”。问题是我经常得到TIMEOUTS,因为Stocks表非常大。

无论如何都要克服App Engine中的时间限制,或者是否有这些更新的解决方法(你必须从表中选择导致超时的许多条目)?

乔尔

2 个答案:

答案 0 :(得分:3)

通常的方法是使用任务队列将作业拆分为较小的任务。

答案 1 :(得分:3)

您有几个选项,所有选项都涉及某种形式的后台处理。

一种选择是使用您的cron作业启动一项任务,该任务会根据需要启动尽可能多的任务来汇总您的数据。另一种选择是使用Brett Slatkin的模式之一并保持(几乎)实时更新数据。有关详细信息,请查看他的高性能数据管道。

http://code.google.com/events/io/2010/sessions/high-throughput-data-pipelines-appengine.html

您还可以查看mapper api(app engine map reduce),看看它是否可以满足您的需求。

http://code.google.com/p/appengine-mapreduce/