Google App Engine for Javaを使ってみよう! (7)
山下 大介 [著] 2009/06/18 14:00

1 2 3 →

はじめに

 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時方式)で指定します。

1 2 3
→
INDEX
Google App Engine for Javaを使ってみよう! (7)App Engine Cron Service
Page1
はじめに
対象読者
必要な環境
App Engine Cron Serviceとは?
App Engine Cron Serviceを使ってみよう!
App Engine Cron Serviceを利用する
実行する
まとめ
参考資料
プロフィール
山下 大介 ヤマシタ ダイスケ

  京都大学を中心とした、産官学共同プロジェクトのSOBAプロジェクトに参加後、同プロジェクトで開発したP2P配信によるVoIP技術を2005年に商業化。オープンソース、VoIP、P2P、クラウドコンピューティングに精通。趣味はGoogleの追っかけ。現在は、株式会社SOBAプロジェクト取締役。

ブログ:『~ ミネルヴァの梟は黄昏とともに飛び始める ~
所属:株式会社SOBAプロジェクト

Google Developer Day 2008サポーター, 2009サポーター
Google App Engine API Expert


注目の求人情報
システムエンジニア/証券向け開発・運用管理
株式・投資信託等、インターネットトレーディングシステムやC/S型業務システムの企画・設計・開発・運用...
システムエンジニア/少数精鋭のSIer
GPS・地図情報、セキュリティ、ICカード・RFIDタグ、携帯電話、ネットワーク、等に関連したシステム(ソ...
コンサルタント/ITソリューション
ERPコンサルティングサービス (ERPアプリケーション導入に伴うコンサルティングおよび開発支援) 〇...

(最新日付順)
名前(ゲストの方もコメントをどうぞ):*
アイコン:
なし

内容(テキストのみ1200文字まで):*

投稿規定に同意して

スポンサーサイト

この記事のトラックバックURL: