Как да стартирате mapreduce задача от cron на GAE Python

Имам задача за mapreduce, дефинирана в mapreduce.yaml:

mapreduce:
- name: JobName 
  mapper:
    input_reader: google.appengine.ext.mapreduce.input_readers.DatastoreInputReader
    handler: handler_name
    params:
    - name: entity_kind
      default: KindName

Как да го стартирам от cron? Има ли някакъв url, който може да го стартира?


person Pawel Markowski    schedule 03.06.2011    source източник


Отговори (2)


Можете да стартирате задача за mapreduce от всеки вид манипулатор на AppEngine, като използвате 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)
person Chris Farmiloe    schedule 03.06.2011
comment
Забелязах коментар във файла, който казва, че start_map е отхвърлен и вместо това трябва да се използва map_job.start; този коментар може да е добавен след този отговор. - person Eric Walker; 21.06.2014

Да, ако погледнете страницата Първи стъпки, тя показва, че вие задайте URL във вашия 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
person Chris Bunch    schedule 03.06.2011
comment
Това ще създаде cron задание, което извлича страницата за администриране на mapreduce веднъж на ден. Няма да изпълни никакви mapreduces. - person Nick Johnson; 04.06.2011