gpt4 book ai didi

python - 如何优化这段代码?我想解决 DeadlineExceededError 问题

转载 作者:太空宇宙 更新时间:2023-11-03 17:38:52 24 4
gpt4 key购买 nike

我想从数据存储中提取数据。我对编程比较陌生,因此在页面上打印结果对我来说似乎最简单。不幸的是,大多数时候(并非总是!),我会收到以下错误。你能帮我一下吗?

错误消息:

500 Server Error The server encountered an error and could not complete your request.

日志:

http://pastebin.com/C2LQCArn

截止日期超出错误

我的理解是我的查询太慢: https://cloud.google.com/appengine/articles/deadlineexceedederrors

如何加快速度?

class ExpData(db.Model):

# According to Datastore Admin, there are 20,557 entities in this model.

created = db.DateTimeProperty(auto_now_add = True)
username = db.StringProperty(required=True)

task1n = db.StringProperty(required=False, indexed=False)
task1a = db.StringProperty(required=False, indexed=False)
task1c = db.StringProperty(required=False, indexed=False)

task2n = db.StringProperty(required=False, indexed=False)
task2a = db.StringProperty(required=False, indexed=False)
task2c = db.StringProperty(required=False, indexed=False)

task3n = db.StringProperty(required=False, indexed=False)
task3a = db.StringProperty(required=False, indexed=False)
task3c = db.StringProperty(required=False, indexed=False)

task4n = db.StringProperty(required=False, indexed=False)
task4a = db.StringProperty(required=False, indexed=False)
task4c = db.StringProperty(required=False, indexed=False)

q1 = db.StringProperty(required=False)
q2 = db.StringProperty(required=False)

ecus = db.StringProperty(required=False)


class Viewer(Handler):
def get(self):

test = ExpData.all().order('-created')
expDataDict = {}
expDataList = []
for entity in test:

if (entity.q2 == "-1") or (entity.q2 == ""):
continue
else:
expDataList.append(entity.created)
expDataList.append(entity.username)
expDataList.append(entity.ecus)
expDataList.append(entity.q1)
expDataList.append(entity.q2)
expDataList.append(entity.task1c)
expDataList.append(entity.task2c)
expDataList.append(entity.task3c)
expDataList.append(entity.task4c)
expDataDict[entity.created] = {}
expDataDict[entity.created]["username"] = entity.username
expDataDict[entity.created]["ecus"] = entity.ecus
expDataDict[entity.created]["q1"] = entity.q1
expDataDict[entity.created]["q2"] = entity.q2
expDataDict[entity.created]["task1c"] = entity.task1c
expDataDict[entity.created]["task2c"] = entity.task2c
expDataDict[entity.created]["task3c"] = entity.task3c
expDataDict[entity.created]["task4c"] = entity.task4c

self.render("viewer.html", otherDict = expDataDict)

非常感谢您的帮助。

最佳答案

首先,尝试将这些条件添加到您的查询中,而不是在检索结果(entity.q2 == "-1") 或 (entity.q2 == "") 后运行它们。其次,您应该查看结果的分页以便查看这么多数据。您应该查看 Query Cursors相反

from google.appengine.api import memcache
from google.appengine.ext import db

# class Person(db.Model): ...

# Start a query for all Person entities
people = Person.all()

# If the application stored a cursor during a previous request, use it
person_cursor = memcache.get('person_cursor')
if person_cursor:
people.with_cursor(start_cursor=person_cursor)

# Iterate over the results
for person in people:
# Do something

# Get updated cursor and store it for next time
person_cursor = people.cursor()
memcache.set('person_cursor', person_cursor)

关于python - 如何优化这段代码?我想解决 DeadlineExceededError 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30849248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com