Google App Engine for JavaのCronジョブ
このチュートリアルでは、Google App Engine(Java用)でスケジューラタスクまたはcronジョブを作成する方法を説明します。 GAEでは、cronジョブはHTTP GETリクエストを使用してURLを呼び出しますが、cronジョブの実行時間は最大10分に制限されています。
GAEでcronジョブを作成するには、ファイル ”
cron.xml
“にcronジョブを定義し、 ”
WEB-INF
“フォルダに入れるだけです。
Cron Jobチュートリアル
次に、GAEでcronジョブを作成し、
Spring MVC RESTの例
からURLを呼び出します。
-
Google App Engine Java SDK 1.6.3.1
-
Spring 3.1.1
-
JDK 1.6
-
Eclipse 3.7 + Google Plugin for Eclipse
1.スプリングコントローラ
簡単なSpring RESTコントローラ。
package com.mkyong.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
– 合計カウントを表示するページ。
<html> <body> <h1>GAE + Spring 3 MVC REST + CRON Example</h1> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-2836379775501347" data-ad-slot="8821506761" data-ad-format="auto" data-ad-region="mkyongregion"></ins> <script> (adsbygoogle = window.adsbygoogle ||[]).push({}); </script><h2>Counts : ${total} </h2> </body> </html>
2. cron.xml
”
cron.xml
“を作成し、 ”
WEB-INF
“フォルダに入れてください。このcronジョブは、URL「
/cron/addCount/1
」を1分ごとに呼び出します。
File:cron.xml
<?xml version="1.0" encoding="UTF-8"?> <cronentries> <cron> <url>/cron/addCount/1</url> <description>Add count + 1 every 1 minutes</description> <schedule>every 1 minutes</schedule> </cron> </cronentries>
every N (hours|mins|minutes)["from" (time) "to" (time)].... === 3.出力 GAEにデプロイすると、アプリケーション管理者ページでcronジョブの状態を表示できます。 画像://wp-content/uploads/2012/05/gae-cron-example1.png[gae cron example、title = "gae-cron-example1"、width = 640、height = 212] __URL:http://mkyong-springmvc-cron.appspot.com/cron/count__、1分後の結果 image://wp-content/uploads/2012/05/gae-cron-example2.png[cron job on gae、title = "gae-cron-example2"、width = 640、height = 322] === ソースコードをダウンロードする ファイルサイズが大きいため、すべてのSpringおよびGAE jarは除外されます。 ダウンロード:link://wp-content/uploads/2012/05/CronJob-GoogleAppEngine-Example.zip[CronJob-GoogleAppEngine-Example.zip](13 KB) === 参考文献 . https://developers.google.com/appengine/docs/java/config/cron[Cronジョブ on GAE for Java]。 link://google-app-engine/google-app-engine-spring-3-mvc-rest-example/[Google App Engine + Spring MVC RESTの例] link://tag/cron/[cron]link://tag/gae/[gae]link://tag/scheduler/[scheduler]