Java用Google App EngineのCronジョブ
このチュートリアルでは、Java用にGoogle App Engineでスケジューラタスクまたはcronジョブを作成する方法を示します。 GAEでは、cronジョブはHTTP GETリクエストを使用してURLを呼び出します。cronジョブの実行時間は、GAEがジョブを強制終了する場合、最大10分間に制限されます。
GAEでcronジョブを作成するには、ファイル「cron.xml」でcronジョブを定義し、「WEB-INF」フォルダーに配置します。
cronジョブチュートリアル
次に、GAEでcronジョブを作成し、Spring MVC REST exampleからURLを呼び出すようにスケジュールします。
-
Google App Engine Java SDK 1.6.3.1
-
春3.1.1
-
JDK 1.6
-
Eclipse 3.7 + Eclipse用Googleプラグイン
1. スプリングコントローラー
シンプルなSpring RESTコントローラー。
package com.example.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("/cron") public class CronController { static int total = 0; @RequestMapping(value="/count", method = RequestMethod.GET) public String getCount(ModelMap model) { model.addAttribute("total", total); return "list"; } //cron job running this @RequestMapping(value="/addCount/{num}", method = RequestMethod.GET) public String addCount(@PathVariable int num, ModelMap model) { total += num; model.addAttribute("total", total); return "list"; } }
File : list.jsp –合計カウントを表示するページ。
GAE + Spring 3 MVC REST + CRON Example
Counts : ${total}
2. cron.xml
「cron.xml」を作成し、「WEB-INF」フォルダに入れます。 このcronジョブは、1分ごとにURL「/cron/addCount/1」を呼び出します。
ファイル:cron.xml
/cron/addCount/1 Add count + 1 every 1 minutes every 1 minutes
Note
cronジョブスケジュール形式は単純な英語のような形式です。 詳細については、このGAE scheduler formatをお読みください。
every N (hours|mins|minutes) ["from" (time) "to" (time)]
3. 出力
GAEにデプロイすると、アプリケーション管理者ページでcronジョブのステータスを表示できます。
URL : http://example-springmvc-cron.appspot.com/cron/count、1分後の結果
ソースコードをダウンロード
ファイルサイズが大きいため、すべてのSpringおよびGAE jarは除外されます。
ダウンロード–CronJob-GoogleAppEngine-Example.zip(13 KB)