[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Google App Engine for Javaを使ってみよう!
(7)App Engine Cron Service

Google App Engine for Javaを使ってみよう! (7)

 この連載では2009年4月に発表されたJava版のGoogle App Engineを解説します。今回は、Google App Engine上で設定した時間にプログラムを動作させることができる「App Engine Cron Service」の使い方を勉強したいと思います。

はじめに

 Googleのインフラで実行されるクラウドサービス Google App Engineが2009年4月7日にJavaに対応しました。Javaエンジニアにも利用できるようになった、Google App Engineを一緒に勉強して行きましょう!

 今回は、Google App Engine上で設定した時間にプログラムを動作させることができる、「App Engine Cron Service」の使い方を勉強したいと思います。

対象読者

  • ウェブサービス開発に興味のあるJavaエンジニア
  • Google App Engine for Javaに興味がある方

必要な環境

  • 「Google Plugin for Eclipse」がインストールされている、Eclipse 3.3(Europa)か3.4(Ganymede)

 開発環境の構築手順については、第1回の解説を参照してください。

App Engine Cron Serviceとは?

 ウェブサービスを作っていると、以下のように決まった時間にプログラムを走らせたいことがよくあります。

  • 毎日24時に1日のアクセス記録を統計化して管理者にメールする
  • 毎月1日の0時にテンポラリデータの削除をする

 Windows系のシステムでは、「タスク・スケジューラ」、UNIX系のシステムでは「Cron」を利用しますが、Google App Engineにもこれに似た「App Engine Cron Service」と呼ばれる仕組みが用意されています。App Engine Cron Serviceでは、時間とURLを記述したxmlファイルをプログラムと一緒にデプロイすることによって、プログラムを制御します。

App Engine Cron Serviceを使ってみよう!

 App Engine Cron Serviceの設定ファイル(cron.xml)は非常に簡単に書くことができます。早速、cron.xmlを見てみましょう。

<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
  <cron>
    <url>/cron/mail</url>  <!-- (1) -->
    <description>every 1 minutes</description>  <!-- (2) -->
    <schedule>every 1 minutes</schedule>  <!-- (3) -->
  </cron>
</cronentries>
  1. 自動的に実行したいURL
  2. この定義の名前(管理コンソールの「Cron Jobs」で表示される名前になります)
  3. アクセスさせたい日時
scheduleのフォーマット
("every"|ordinal) (days) ["of" (monthspec)] (time)

書き方の例

every 5 minutes
every 12 hours
2nd,third mon,wed,thu of march 17:00
every monday 09:00
1st monday of sep,oct,nov 17:00
every day 00:00
scheduleの詳細な説明
項目 詳細な説明
every

毎月/毎日/毎時を表現したい場合、「every」を指定します。

ordinal 最初の週/第3週などを表現したい場合、英語で指定します。「1st」か「first」のいずれかのフォーマットで書きます。カンマ(,)で区切ることで複数指定できます。例:「第1と第3」と表現したい場合、カンマ(,)で区切り「1st,3rd」あるいは「first,third」と指定します。
days 曜日を英語で指定します。「mon」か「monday」のいずれかのフォーマットで書きます。カンマ(,)で区切ることで複数指定できます。毎日の場合、「every mon,tue,wed,thu,fri,sat,sun」の代わりに「every day」と書くこともできます。
monthspec 月を英語で指定します。「jan」か「january」のいずれかのフォーマットで書きます。カンマ(,)で区切ることで複数指定できます。指定がない場合、毎月になります。
time 時間を「HH:MM」スタイル(24時方式)で指定します。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
App Engine Cron Serviceを利用する

この記事は参考になりましたか?

Google App Engine for Javaを使ってみよう!連載記事一覧

もっと読む

この記事の著者

山下 大介(ヤマシタ ダイスケ)

  京都大学を中心とした、産官学共同プロジェクトのSOBAプロジェクトに参加後、同プロジェクトで開発したP2P配信によるVoIP技術を2005年に商業化。オープンソース、VoIP、P2P、クラウドコンピューティングに精通。趣味はGoogleの追っかけ。現在は、株式会社SOBAプロジェクト取締役。ブログ:『~ ミネルヴァの梟は黄昏とともに飛び始める ~』所属:株式会社SOBAプロジェクトGoogle Developer Day 2008サポーター, 2009サポーターGoogle App Engine API Expert

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3918 2009/06/18 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング