cron
ちょっとハマったのでメモしておく。
Google App Engine(Python)でcronを動かすには、cron.yamlを記述すればよい。こちらのGoogle説明書にあるとおり。
ただし...Django使って組み上げる場合はcron.yamlでの記述に注意が必要。例えばGoogle説明書にある
cron: - description: daily summary job url: /tasks/summary schedule: every 24 hours - description: monday morning mailout url: /mail/weekly schedule: every monday 09:00 timezone: Australia/NSW
は、ブラウザからテストする分には問題ないが、cronで流すとコケる。なぜなら、djangoは/tasks/summaryというリクエストを一旦/tasks/summary/にRedirectかけようとするから。そしてcronはredirectを追うことができないので、コンソールにはFailedという不親切な一行が残るのみ。view本体はキックされないのでログも残らない。正しくは
cron: - description: daily summary job url: /tasks/summary/ schedule: every 24 hours - description: monday morning mailout url: /mail/weekly/ schedule: every monday 09:00 timezone: Australia/NSW
のように、urlエントリを/で閉めること。これに気づくのに半日かかった orz