このチュートリアルでは、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]