2011年06月03日

GAE/PでCRONを使ったスケジュールタスク実行。

GAE for Python では、CRONジョブでスケジュールタスクを実行できる。

参考

まず、cron.yaml というファイルを新規作成し、app.yamlなどと同じ場所に保存する。

cron.yaml
cron:
- description: execute every 24 hours.
url: /hogetask
schedule: every 24 hours
timezone: Asia/Tokyo
- description: execute at 23:00 everyday.
url: /footask
schedule: every day 23:00
timezone: Asia/Tokyo
- description: execute at 9:00 every monday.
url: /baatask
schedule: every monday of month 09:00
timezone: Asia/Tokyo

ざっと説明すると、description: はコメント、url: は実行するタスクのURL、そして、schedule: はスケジュール・フォーマットを表し、実行する日時やタイミング(スケジュール)を指定する。スケジュール・フォーマットの詳細はこちらを参照のこと。

そして、お馴染みの app.yaml は以下のように記述する。

app.yaml
application: hello-cron
version: 1
runtime: python
api_version: 1

handlers:
- url: /hogetask
script: hogetask.py
login: admin
- url: /footask
script: footask.py
login: admin
- url: /baatask
script: baatask.py
login: admin

特に説明の必要は無いだろう。
大切なのは login: admin の部分だ。
こう記述しておけば、たとえ外部からタスクのURLにアクセスされても管理者でなければジョブが実行されることはない。

後は appcfg.py を利用してGAEアプリをアップロードすればCRONジョブは設定される。

アップロードしたCRONジョブを初期化したい場合は、cron.yaml に以下の内容のみを記述してアップロードすれば良い。
cron.yaml
cron:


なお、ローカル開発環境のCRONジョブは、 http://localhost:8080/_ah/admin/cron へアクセスすると確認できる。



ここはひとつポチっとよろしく。
人気ブログランキングへ

プログラミング Google App Engine
Dan Sanderson
オライリージャパン
売り上げランキング: 40082



posted by 寄り道退屈男 at 15:13 | Comment(0) | TrackBack(0) | GAE for Python
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/45696549
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック