При запуске mapreduce в Google App Engine я иногда сталкиваюсь с ключевой ссылкой, которая недействительна. Я хотел бы сделать эффективный метод, который я мог бы использовать для любой модели, используя mapreduce, чтобы убедиться, что все ключевые ссылки для каждого объекта все еще действительны. Какой был бы самый эффективный способ сделать это? Вот моя идея функции карты до сих пор.В Python версии Google Appengine mapreduce, каков наиболее эффективный способ проверки правильности ссылок на ключевые слова?
#map function
def check_all_references(entity):
for attr, value in entity.__dict__.iteritems():
if type(value)== #google.appengine.api.datastore_types.Key:
#Check to see if the referenced entity exists
....
if referencedEntityExists: return
else:
logging.error('Entity %s referenced entity %s which is not valid.', entity, referencedEntity)
Должны «рефов» и переменные «refkeys» быть все тоже самое? Я получаю глобальное имя «refkeys» не определяется этим кодом. – Chris
Вы правы, они должны быть. Рефакторинг терпит неудачу. –