Google App Engine for JavaのCronジョブ

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を呼び出すようにスケジュールします。

  1. Google App Engine Java SDK 1.6.3.1

  2. 春3.1.1

  3. JDK 1.6

  4. 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ジョブのステータスを表示できます。

gae cron example

cron job on gae

ソースコードをダウンロード

ファイルサイズが大きいため、すべてのSpringおよびGAE jarは除外されます。

ダウンロード–CronJob-GoogleAppEngine-Example.zip(13 KB)