目前为止,没有人(甚至是GAE文档)能够给我一个真正清晰的描述,说明推送队列和拉取队列之间有什么区别。
我的理解是,任务队列API允许您定义任务队列,其中可以将工作入队。以某种方式,这与GAE的自动扩展功能配合使用,因此您不需要显式地管理消耗这些队列中的任务的工作线程数量:GAE会为您处理。
但是,我无法找到关于推送队列和拉取队列之间差异的通俗易懂的描述。"推送队列"在推送什么?"拉取队列"在拉取什么?它们都在queues.xml
内配置吗?
目前为止,没有人(甚至是GAE文档)能够给我一个真正清晰的描述,说明推送队列和拉取队列之间有什么区别。
我的理解是,任务队列API允许您定义任务队列,其中可以将工作入队。以某种方式,这与GAE的自动扩展功能配合使用,因此您不需要显式地管理消耗这些队列中的任务的工作线程数量:GAE会为您处理。
但是,我无法找到关于推送队列和拉取队列之间差异的通俗易懂的描述。"推送队列"在推送什么?"拉取队列"在拉取什么?它们都在queues.xml
内配置吗?
您可以使用拉取队列(例如)来聚合多个工作单元,这些工作单元可以一起处理。另一个例子:在外部机器(如EC2或gCompute)上拉取任务以便以AppEngine无法处理的方式处理任务。
在推送队列中,您将任务放入队列中,但AppEngine将取消排队,并在指定任务处理程序的情况下运行它们。您可以控制任务处理速率,如何控制任务执行失败,而AppEngine将决定使用多少实例(线程)来处理任务。
queues.xml
只适用于 push 队列吗?(2) 我假设 Task Queue API 包含了从 pull 队列显式取消排队/删除任务的代码,是吗?再次感谢! - IAmYourFaja