Cron работа в Google App Engine для Java

Работа Cron в Google App Engine для Java

В этом руководстве мы покажем вам, как создать задачу планировщика или задание cron в Google App Engine для Java. В GAE задание cron использует запрос HTTP GET для вызова URL-адреса, продолжительность времени выполнения задания cron ограничена только 10 минутами, в случае превышения GAE убивает ваше задание.

Чтобы создать задание cron в GAE, просто определите задания cron в файле «cron.xml» и поместите в папку «WEB-INF».

Cron Job Tutorial

Теперь мы создадим задание cron в GAE и запланируем вызов URL-адреса изSpring MVC REST example.

  1. Google App Engine Java SDK 1.6.3.1

  2. Весна 3.1.1

  3. JDK 1.6

  4. Eclipse 3.7 + плагин Google для Eclipse

1. Spring Controller

Простой 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 будет вызывать URL «/cron/addCount/1» каждые 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

URL : http://example-springmvc-cron.appspot.com/cron/count, результат через одну минуту

cron job on gae

Скачать исходный код

Из-за большого размера файла исключаются все банки Spring и GAE.

Скачать -CronJob-GoogleAppEngine-Example.zip (13 КБ)