【问题标题】:Distributed\Parallel computing using app-engine (java api)使用 app-engine (java api) 进行分布式\并行计算
【发布时间】:2013-07-04 13:14:48
【问题描述】:

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

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));

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

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

【问题讨论】:

  • 欢迎来到 StackOverflow。如果您可以添加一些到目前为止您已经尝试过的代码来获取您的结果,那将是很好的。有关如何使用该网站的一些提示,请参阅help 页面。

标签: multithreading google-app-engine distributed-computing


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

您必须将结果写入数据存储区。

作为考虑它的起点,您可以将 JobId 作为参数传递给任务,让每个任务编写一个带有结果和 JobId 的实体,然后在 datstore 中查询给定的 JobId 以获取所有结果。

【讨论】:

    猜你喜欢
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 2015-09-03
    • 2014-04-02
    相关资源
    最近更新 更多