Google AppEngine:任务队列API
com.google.appengine.api.taskqueue
队列配置
1.推送队列(默认):
推送队列将根据队列定义中配置的处理速率来处理任务(请参见下文)。 App Engine自动管理这些队列的生存期(创建,删除等),并调整处理能力以匹配您的配置和处理量。 这些只能在App Engine(您的应用内部)中使用。
2.拉入队列:
允许任务使用者在特定时间范围内的特定时间租用任务。 可通过Task Queue REST API在内部和外部对其进行访问。 但是,在这种情况下,GAE不会自动管理队列的生命周期和处理速率,这要由开发人员来决定。 后端也可以访问这些队列。
任务
交易中的任务
任务可以作为数据存储事务的一部分入队。 如果事务成功提交,将确保插入(不执行)。 唯一需要注意的是,事务性任务不能具有用户定义的名称,并且在单个事务中最多有5个插入到任务队列中。
组态
这是允许您配置的一些内容(文档更详尽):
• bucket-size :当队列中有许多任务且速率很高时(仅推送),处理队列的速度。 (警告:开发服务器将忽略此值)
• max-concurrent-requests :在指定队列中的任何给定时间可以执行的最大任务数(仅推送)。
• 模式 :是推还是拉。
• 名称 :队列名称
• 目标 :将任务定位到特定的后端或应用程序版本。
<queue-entries>
<!--Set the number of max concurrent requests to 10--> <queue> <name>optimize-queue</name> <rate>20/s</rate> <bucket-size>40</bucket-size> <max-concurrent-requests>10</max-concurrent-requests> </queue>
</queue-entries>
样例代码
public class TaskQInfo extends HttpServlet {private static volatile int TASK_COUNTER = 0;// Executed by user menu clickpublic void doGet(HttpServletRequest req, HttpServletResponse resp)throws IOException {// Build a task using the TaskOptions Builder pattern from ** aboveQueue queue = QueueFactory.getDefaultQueue();queue.add(withUrl("/taskq_demo").method(TaskOptions.Method.POST)); resp.getWriter().println("Task have been added to default queue...");resp.getWriter().println("Refresh this page to add another count task");}// Executed by TaskQueue@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// This is the body of the taskfor(int i = 0; i < 1000; i++) {log.info("Processing: " + req.getHeader("X-AppEngine-TaskName") + "-" + TASK_COUNTER++); try { // Sleep for a second (if the rate is set to 1/s this will allow at // most 1 more task to be processed)Thread.sleep(1000); } catch (InterruptedException e) { // ignore}}}
}
任务队列使您可以通过按需调用后台进程来在应用程序中实现某种程度的并发。 对于非常冗长的任务,您可能需要查看App Engine 后端,这些后端基本上是没有请求时间限制的特殊App Engine实例。
参考: Google AppEngine:来自JCG合作伙伴 Luis Atencio的Task Queues API ,位于Reflective Thought博客上。
翻译自: https://www.javacodegeeks.com/2012/05/google-appengine-task-queues-api.html
Google AppEngine:任务队列API相关推荐
- appengine_Google AppEngine:任务队列API
appengine 任务队列 com.google.appengine.api.taskqueue 使用任务队列,用户可以发起一个请求,以使应用程序执行此请求之外的工作. 它们是进行后台工作的强大工具 ...
- 网络应用自建利器-Google AppEngine
网络应用自建利器-Google App Engine 最近特别无聊,看到一篇文章说作为程序员应该有自己的一个网站,感觉的确很有道理,但是要买域名,租服务器要钱,用自己电脑搭建的话,又不能经常关机,很是 ...
- Google Maps Android API v2官网例子使用说明
2019独角兽企业重金招聘Python工程师标准>>> 1.安装Google Play services SDK Google Maps SDK已经作为Google Play ser ...
- Google Maps Android API V2的使用及问题解决
Google Maps Android API V2的使用及问题解决 参考文章: (1)Google Maps Android API V2的使用及问题解决 (2)https://www.cnblog ...
- Google Maps Android API V2使用及问题解决
这一段时间因为毕设题目是:android版的google地图,所以目前在公司忙里偷闲,弄弄毕设,学习学习google android地图的使用 1. 目前google已经不再提供Google Maps ...
- Google Maps JavaScript API V3 根据地址 加载地图
效果图如下: javascript代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &qu ...
- ASP.NET Google Maps Javascript API V3 实战基础篇一获取和设置事件处理程序中的属性...
ASP.NET Google Maps Javascript API V3 实战基础篇一获取和设置事件处理程序中的属性 <%@ Page Language="C#" Auto ...
- javame_JavaME:Google静态地图API
javame 无论您是需要基于位置的应用程序的地图还是只是出于娱乐目的,都可以使用有史以来最简单的方法:Google Static Maps API. 在这篇文章中,我们将看到如何从纬度和经度获得地图 ...
- JavaME:Google静态地图API
无论您是需要基于位置的应用程序的地图还是只是出于娱乐目的,都可以使用有史以来最简单的方法:Google Static Maps API. 在这篇文章中,我们将看到如何从纬度和经度获得地图作为图像. 可 ...
最新文章
- wangEditor 上传文件
- Angular 运行报错 RouterModule.forRoot() called twice.
- linux 同步与异步--阻塞与非阻塞型I/O
- 使用fluentd管理docker日志
- Django(part24)--查询数据
- Linux 输入输出重定向 2>/dev/null和>/dev/null 2>1和2>1>/dev/nul
- P01:01背包问题(转)
- 简述div标签和span标签的不同,div和span标签之间的区别
- WP与IOS与Android的后台机制相同与不同
- vb与php通讯加密,在VB.NET中加密和在PHP中解密
- Hyper-V使用手记(一):无法引导安装FreeBSD7
- java图书管理系统源码免费_Java图书管理系统 附源码
- 集成电路工艺专题复习
- 实验一 9V稳压电源电路实验
- Android开发:基站定位
- 类的加载、连接和初始化
- JS修改style样式
- Maven | filtering,filter和profile标签使用
- 解决:谷歌浏览器下载链接时一闪一闪的问题
- SpringCloud Feign参数传递问题
热门文章
- spring(5)构建 spring web 应用程序
- java 正则表达式 开头_如何在Java中修复表达式的非法开头
- libreoffice_利用Excel或LibreOffice的业务输入进行单元测试约束
- java延时执行_Java谓词的延迟执行
- java ee的小程序_用微服务和容器替换旧版Java EE应用程序服务器
- jboss默认进程名称_快速指南:剖析JBoss BPM跨进程通信
- gradle发布jar_使用Gradle将JAR工件发布到Artifactory
- Java:Speedment 3.2的发布–现在启用轻量级数据库微服务
- JMetro版本5发布
- 通过函数式编程实现动态对话框处理程序