Google App Engine 中 TaskQueue 和 MapReduce 的区别

Difference between TaskQueue and MapReduce in Google App Engine

我已经阅读了关于 taskqueue 的文档,并在 gae 中推送了用于创建长 运行 任务的队列。

我怀疑为什么需要 MapReduce?由于两者都在后台进行处理,它们之间的主要区别是什么。

有人可以解释一下吗?

编辑:我想我是在拿苹果和猴子作比较! Hadoop,mapreduce是相关的。而gae是一个后端框架。

你对两个完全不同的东西感到困惑。

MapReduce范式是关于分布式并行处理非常庞大数据量。

TaskQueue 是一个调度器;它可以安排一个任务在某个时间执行。它只是一个像 unix cronjobs.

这样的调度器

请注意以上语句中的粗体字和斜体字以查看区别。

来自TaskQueue

的定义

Task queues let applications perform work, called tasks, asynchronously outside of a user request. If an app needs to execute work in the background, it adds tasks to task queues. The tasks are executed later, by worker services.

根据定义,TaskQueue在用户请求之外工作;意味着没有实际的用户请求执行 task(它只是过去某个时候的 submitted/scheduled)。 mapreduce 程序由用户提交执行,但您可以使用 TaskQueue 安排 一个在将来执行。

您可能对 mapreduce 世界中使用的 taskqueuescheduling 这样的词感到困惑。但是 mapreduce 中的所有内容可能有一些相似之处,因为它们是通用术语 - 但它们绝对不一样。