如何在GAE Python中从cron启动MapReduce任务
我在mapreduce.yaml文件中定义了一个mapreduce任务:
mapreduce:
- name: JobName
mapper:
input_reader: google.appengine.ext.mapreduce.input_readers.DatastoreInputReader
handler: handler_name
params:
- name: entity_kind
default: KindName
我该如何通过定时任务(cron)来启动它呢?有没有什么网址可以直接运行这个任务?
2 个回答
-6
是的,如果你查看一下入门指南页面,你会看到需要在你的app.yaml
文件中设置网址:
handlers:
- url: /mapreduce(/.*)?
script: mapreduce/main.py
login: admin
然后你可以像平常一样在App Engine中设置定时任务,这个例子中你需要写一个cron.yaml
文件,内容如下:
cron:
- description: daily summary job
url: /mapreduce
schedule: every 24 hours
10
你可以通过任何类型的AppEngine处理程序来启动一个mapreduce任务,使用的是control.py这个文件。
from mapreduce import control
mapreduce_id = control.start_map(
"My Mapper",
"main.my_mapper",
"mapreduce.input_readers.DatastoreInputReader",
{"entity_kind": "models.MyEntity"},
shard_count=10)