Google App Engine(GAE)のwar/WEB-INF/queue.xmlのメモ。
|
キューは、並行して別の処理を実行させる仕組み。
queue.xmlに定義を書いてプログラムからそれを指定すると、その間隔
で処理が実行される。
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("パラメーター名", "値")で指定することが出来る。
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日。