2013-08-10 15 views
5

Mam app.yaml jak poniżej:Jak sprawić, aby cron działał z określonym modułem silnika aplikacji?

application: myapp 
module: mymodule 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: true 
... 

Aplikacja posiada również cron.yaml jak poniżej:

cron: 
- description: increase a value every hour 
    url: /test/inc 
    schedule: every 60 minutes synchronized 

Jak zrobić mój cron cel pracy mymodule zamiast modułu default?

+1

Można użyć dispatch.yaml https: // deweloperów. google.com/appengine/docs/python/modules/routing – voscausa

+0

To nie działa. Mam plik dispatch.yaml obok pliku cron.yaml z: – Dan

+0

Zignoruj ​​ostatni komentarz. To działa, ale musisz uruchomić '$ PATH_TO_SDK/appcfg.py update_dispatch' po utworzeniu/edycji swojego pliku' dispatch.yaml'. Dokumentacja nie wspomina o tym. – Dan

Odpowiedz

8

W nowszych wersjach GAE (testowane przynajmniej 1.8.6), można po prostu ustawić celza zadanie cron:

cron: 
- description: increase a value every hour 
    url: /test/inc 
    schedule: every 60 minutes synchronized 
    target: mymodule 
+0

Jestem na 1.8.8 i wydaje mi się, że nie działa dla mnie. Próba zrestartowania serwera też. –

+0

Czy Twój moduł obsługuje adres URL żądania? Czy masz w nim wpis do dziennika? Co na stronie cron mówi o statusie? – marianosimone

+0

Tak, zgodnie ze stdout, cron wysyła żądanie do modułu 'default', a nie' api', mimo że moje zadanie cron.yaml ma ustawienie 'target: api'. –

Powiązane problemy