我正在使用:
http://code.google.com/p/appengine-mapreduce/
从演示应用程序开始。
我应该如何将实体写入数据存储区?产生放置操作?输出编写器类型应该是什么?
答案 0 :(得分:0)
是的,我用这样的put操作使用yield:
def makethumbnails(entity):
if entity.small:
try:
entity.thumb = images.resize(entity.small, 80, 100)
except Exception, e:
pass
yield op.db.Put(entity)
在我的mapreduce.yaml中,相应的元素是
- name: makethumbnails
mapper:
input_reader: mapreduce.input_readers.DatastoreInputReader
handler: main.makethumbnails
params:
- name: entity_kind
default: main.Image
这是一个对我有用的组合,或者如果您只想为大量实体更新变量:
def seturl(entity):
if entity.url:
if entity.url.find('mydomainname') > 1:
try:
entity.url = 'www.mydomainname.com'
yield op.db.Put(entity)
except Exception, e:
logging.debug('There occurred exception:%s' % str(e))
我可以使用上述操作在一个作业中处理15000个实体。