def save_objects(self, keys_to_objects):
cache_keys = [self.key_to_cache_key(object_key) for object_key, this_object in keys_to_objects.iteritems()]
if cache_keys:
existing_objects = FacebookCachedObject.get_by_key_name(cache_keys)
else:
existing_objects = []
db_objects_to_put = []
for obj, (object_key, this_object) in zip(existing_objects, keys_to_objects.iteritems()):
if not self._is_cacheable(object_key, this_object):
#TODO(lambert): cache the fact that it's a private-unshowable event somehow? same as deleted events?
logging.warning("BatchLookup: Looked up id %s but is not cacheable.", object_key)
continue
cache_key = self.key_to_cache_key(object_key)
if not obj:
obj = FacebookCachedObject(key_name=cache_key)
old_json_data = obj.json_data
obj.encode_data(this_object)
if old_json_data != obj.json_data:
self.db_updates += 1
db_objects_to_put.append(obj)
if db_objects_to_put:
try:
db.put(db_objects_to_put)
except apiproxy_errors.CapabilityDisabledError as e:
logging.warning('CapabilityDisabledError: %s', e)
评论列表
文章目录