GAE/JでCronを動かす
App Engine Cron サービスを使用し、指定した時間または一定の間隔で実行されるタスクのスケジュールを設定できます。これらのタスクは一般的に「cron ジョブ」と呼ばれます。cron ジョブは App Engine Cron サービスにより自動的に起動されます。この機能を利用すれば、日報のメール送信、キャッシュ データの 10 分間隔での更新、または集計情報の 1 時間ごとの更新などが可能になります。
cron ジョブは一日の中の指定した時間に URL を起動します。cron が起動した URL は、リクエスト時間の制限など、通常の HTTP リクエストと同じ制限や割り当てが適用されます。
アプリケーションには最大 20 個のタスクをスケジューリングできます。
月曜日の10時にcronを動かす
cronを動かすは/cronJobStartにリクエストするということになります。
この例は下記の設定です。
<?xml version="1.0" encoding="UTF-8"?> <cronentries> <cron> <url>/cronJobStart</url> <description>cron job</description> <schedule>every mon 10:00</schedule> <timezone>Asia/Tokyo</timezone> </cron> </cronentries>
timezoneを指定すると時間を簡単に指定できる。
タイムゾーンを指定しないと、ジョブは UTC(GMT とも呼ばれます)で実行されます。
毎日10時にcronを動かす
問題はこちら。
下記のように設定したら10時から無限ループのようにリクエストが発行されまくった。
この指定方法はまずいのだろうか。
<?xml version="1.0" encoding="UTF-8"?> <cronentries> <cron> <url>/cronJobStart</url> <description>cron job</description> <schedule>every mon, tue, wed, thu, fri, sat, sun 10:00</schedule> <timezone>Asia/Tokyo</timezone> </cron> </cronentries>