0

我想使用主从(工作者)范式来解决问题。我读过手动打开新线程(例如使用线程池)不可用,我需要使用队列,附加代码示例:

class MyDeferred implements DeferredTask {
    @Override
    public void run() {
        // Do something interesting
    }
};

MyDeferred task = new MyDeferred();
// Set instance variables etc as you wish
Queue queue = QueueFactory.getDefaultQueue();
queue.add(withPayload(task));

如何获得工作人员(已添加到队列中)的结果?

我需要这些信息,以解决更大的问题。

4

2 回答 2

0

You will have to write the results into the datastore.

Just as a starting point to think about it, you might pass a JobId as a parameter to the tasks, have each task write an entity with the result and the JobId, and then later query the datstore for the given JobId to get all the results.

于 2013-07-04T15:52:08.497 回答
0

实际上你可以在 GAE 上使用线程,但是有一些限制。如果您需要长时间运行的线程,您可以使用后台线程,但这需要您使用后端实例。

如果您选择使用任务队列,请记住任务不会“返回”给调用者。要汇总结果,您需要使用数据存储。

于 2013-07-05T06:29:31.803 回答