読者です 読者をやめる 読者になる 読者になる

GAE/JでCronを動かす

googleのドキュメントはこちらを参照

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を指定すると時間を簡単に指定できる。
タイムゾーンを指定しないと、ジョブは UTCGMT とも呼ばれます)で実行されます。

毎日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>