GoogleAppEngineでの、Cronの書き方でハマった

GoogleAppEngine(for Python)では、cron.yaml にタスクをスケジューリングしておくことで、定期的にジョブ実行できます。
僕の場合、1時間に1回、ジョブ実行したいと思っています。

しかし、設定内容に、

  every 1 hours synchronized

と書くと、確かに1時間ごとに実行されるんだけれども、cron.yamlをGAE上にアップロードした時間にジョブが初回実行される。
そのため、毎回異なる開始時間でスタートしてしまう

時には15分からスタートしたり、
13:15
14:15

6分からスタートしたり、
13:06
14:06

僕の場合、1時間ごとに「**時10分”」に実行したい!!

が、マニュアルにはそれらしき記載が見当たらない・・・。
(マニュアル)Python 用クローンを使用したスケジュールされたタスク – Google App Engine — Google Developers

僕が使っている環境
Windows7(64Bit)
Python 2.5.4
Google App Engine SDK for Python 1.7.1
Aptana Studio 3.2.2


・やったこと
こう書くと、開始・終了時間を設定できます。

schedule: every 1 hours from 00:00 to 09:59

この場合、1時間ごとに**時00分に実行されます。
1日中動かす場合は、
from 00:00 to 23:59
と指定すればいい。

僕の場合、「**時10分”」に実行したい、あと、1日中動かし続けたい。
なので、設定内容をこうしました。

cron:
- description: GetTrend job
  url: /twitter_trend/get_trend
  schedule: every 1 hours from 00:10 to 00:09
  timezone: Asia/Tokyo

終了時間が翌日の00:09になるので、設定ファイルにどう書こうか迷ったけど、そのまま記載して問題なくCron実行できました。
あと、念のためTimeZoneも設定しておきました。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s