擅长:python、mysql、java
<p>下面是我用来解决这个问题的代码,通过将一个大查询分解成多个小查询。我使用<code>google.appengine.ext.ndb</code>库,我不知道下面的代码是否需要它。在</p>
<p>(如果您不使用ndb,请考虑切换到它。它是db库的改进版本,迁移到它很容易。有关详细信息,请参见<a href="https://developers.google.com/appengine/docs/python/ndb" rel="nofollow">https://developers.google.com/appengine/docs/python/ndb</a>。)</p>
<pre><code>from google.appengine.datastore.datastore_query import Cursor
def ProcessAll():
curs = Cursor()
while True:
records, curs, more = MyEntity.query().fetch_page(5000, start_cursor=curs)
for record in records:
# Run your custom business logic on record.
RunMyBusinessLogic(record)
if more and curs:
# There are more records; do nothing here so we enter the
# loop again above and run the query one more time.
pass
else:
# No more records to fetch; break out of the loop and finish.
break
</code></pre>