如何在GAE Python上从cron启动mapreduce作业

时间:2011-06-03 15:01:31

标签: python google-app-engine 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 个答案:

答案 0 :(得分:10)

您可以使用control.py从任何类型的AppEngine处理程序启动mapreduce任务

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)

答案 1 :(得分:-6)

是的,如果您查看Getting Started页面,则表明您在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