我正在为App Engine中的银行应用程序构建一个演示。 我有一个用户表和股票表。
为了让我能够在应用程序中列出“Top Earners”,我在每个用户的条目中保存了“Total Amount”字段,以便稍后我可以使用ORDER BY进行选择。
我正在运行一个在Stocks表上运行的cron作业,并在User表中更新每个用户的“Total Amount”。问题是我经常得到TIMEOUTS,因为Stocks表非常大。
无论如何都要克服App Engine中的时间限制,或者是否有这些更新的解决方法(你必须从表中选择导致超时的许多条目)?
乔尔
答案 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),看看它是否可以满足您的需求。