我期待在谷歌的应用引擎的新任务的队列API for Java和我有困难时期有关,我的应用程序的应用程序。如果我想用一个任务排队去做一些步处理,我应该怎么做,使用的应用程序.

在我看来,我得发送一个服务器的请求,然后会做的提交任务的队列。如果我的理解的任务的队列正确的,我们必须创造又一个servlet做的处理工作队(能的工作人员).

我在找2件事:

  1. 将工作人员被一个小(即延伸 HttpServlet)?如果不是,可能有人给我的一个实例"工人"?
  2. 它不会真正意义使用的任务的队列,如果我只是想提交一步的响应能立即执行的?它似乎应用程序的内在RPC机制是不够的。
有帮助吗?

解决方案

是的,工作人员将是一个servlet它可以处理的请求后的参数。如果你想要一步呼吁从客户的角度来看然后RPC是不够的(从服务器的角度看,这仍然是同步)。如果你想要做的"迟延"的工作这不谈谈你的客户,可以使用一任务的队列。

其他提示

推迟。Deferable

任何计划推迟。推迟在Java?

import static com.google.appengine.api.labs.taskqueue.TaskOptions.Builder.taskName;

import java.io.IOException;

import javax.servlet.ServletException;

import com.newatlanta.appengine.taskqueue.Deferred;
import com.newatlanta.appengine.taskqueue.Deferred.Deferrable;

@SuppressWarnings("serial")
public class SampleTask implements Deferrable {

    private String arg1;
    private String arg2;

    public SampleTask() {
    }

    public SampleTask(String arg1, String arg2) {
        // save information to use later
        this.arg1 = arg1;
        this.arg2 = arg2;
    }

    @Override
    public void doTask() throws ServletException, IOException {
        // TODO do work here

        // this is how you 'schedule' a task
        // doing this here is recursive;
        // you most likely want to call this from
        // a server rpc endpoint
        SampleTask task = new SampleTask("arg1", "arg2");
        Deferred.defer(task, "queue-name", taskName("task-name"));
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top