擅长:python、mysql、java
<p>DB query超时的确切规则很复杂,但似乎一个查询的生存时间不能超过2分钟,而一个批处理的生存时间不能超过30秒。下面是一些代码,它将一个作业分解为多个查询,使用游标来避免这些超时。在</p>
<pre><code>def make_query(start_cursor):
query = Foo()
if start_cursor:
query.with_cursor(start_cursor)
return query
batch_size = 1000
start_cursor = None
while True:
query = make_query(start_cursor)
results_fetched = 0
for resource in query.run(limit = batch_size):
results_fetched += 1
# Do something
if results_fetched == batch_size:
start_cursor = query.cursor()
break
else:
break
</code></pre>