java - Google App Engine 上的推送队列与拉取队列

标签 java api google-app-engine task-queue worker-thread

到目前为止,没有人(甚至是 GAE 文档)能够给我一个真正清楚的描述 push 队列和 pull 之间的区别> 排队。

我的理解是,Task Queue API 允许您定义可以将工作排入队列的任务队列。不知何故,这与 GAE 的自动缩放功能配合使用,因此您无需显式管理从这些队列中消耗任务的工作线程数量:GAE 只是为您完成。

但是我在任何地方都找不到关于推送队列和拉取队列之间区别的“国王英语”描述。什么是“推送队列”推送?什么是“拉队列”拉?它们都在 queues.xml 中配置吗?

最佳答案

拉取队列中,您将任务排入队列并且您的代码需要拉取它们,您通过从队列中租用任务并删除任务来拉取它们。如果您不删除任务并且租用时间到期,系统会将任务返回到队列中。

您可以使用拉队列(例如)来聚合可以一起处理的多个工作单元。另一个示例:排队任务将由外部机器(如 EC2 或 gCompute)拉取,以便以 AppEngine 无法处理的方式处理任务。

推送队列中,您将任务排入队列,但 AppEngine 会将它们出列并在任务指定的处理程序上运行它们。您可以控制任务处理速率,如何控制任务执行失败,AppEngine 将决定使用多少个实例(线程)来进行处理。

关于java - Google App Engine 上的推送队列与拉取队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12317603/

相关文章:

Java:如何优化大数组的总和

java - 我应该如何正确计算 JTable 列值中的值?

php - 如何将api结果添加到mysql

django - Google App Engine 对 Django 的优缺点?

Java 与数据库存储对象的并发

java - 在 Runnable jar 文件中找不到 com.mysql.jdbc.Driver

java - 如果使用 @Local 注释 (EJB),则会出错

java - 自动人类可读时间间隔

python - 如何让这个 Python 脚本为使用 API 进行的交易添加限制?

eclipse - 如何将 App Engine WAR 文件夹转换为单个 WAR 文件