S-JIS[2010-09-20] 変更履歴

GAE キュー

Google App Engine(GAE)のwar/WEB-INF/queue.xmlのメモ。


概要

キューは、並行して別の処理を実行させる仕組み。
queue.xmlに定義を書いてプログラムからそれを指定すると、その間隔 で処理が実行される。


Queueの例

Slim3のController内からQueueを実行する例。

import org.slim3.controller.Controller;
import org.slim3.controller.Navigation;

import com.google.appengine.api.labs.taskqueue.Queue;
import com.google.appengine.api.labs.taskqueue.QueueFactory;
import com.google.appengine.api.labs.taskqueue.TaskOptions;
public class SampleController extends Controller {

	@Override
	public Navigation run() throws Exception {

		Queue queue = QueueFactory.getQueue("my-queue");
		TaskOptions task = TaskOptions.Builder.url(basePath + "post");
		queue.add(task);

		return null;
	}
}

TaskOptions.Builder#url()で、実行するURIを指定する。
パラメーターを渡したい場合は、task.param("パラメーター名", "値")で指定することが出来る。


queue.xmlの例

war/WEB-INF/queue.xmlに記述する。

<queue-entries>
	<queue>
		<name>default</name>
		<rate>10/s</rate>
	</queue>
	<queue>
		<name>slim3-gtx-queue</name>
		<rate>10/s</rate>
		<bucket-size>10</bucket-size>
	</queue>
	<queue>
		<name>my-queue</name>
		<rate>1/m</rate>
	</queue>
</queue-entries>

queue-entriesの下に複数のqueue要素を書くことが出来る。

name要素は、プログラムから指定する為に記述する。

rate要素は、どれくらいの間隔(頻度)で実行するのかを記述する。
「10/s」の場合、1秒間に10回。「5/m」の場合、1分間に5回。hは1時間、dは1日。


GAEへ戻る / 技術メモへ戻る
メールの送信先:ひしだま