appengine_Google AppEngine:任务队列API
appengine
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
appengine
appengine_Google AppEngine:任务队列API相关推荐
- Google AppEngine:任务队列API
任务队列 com.google.appengine.api.taskqueue 使用任务队列,用户可以发起一个请求,以使应用程序执行此请求之外的工作. 它们是进行后台工作的强大工具. 此外,您可以将工 ...
- appengine_Google Appengine登台服务器操作方法
appengine Google的App Engine开箱即用,支持版本化部署. 您可以非常轻松地在各修订版之间来回切换,这是在上线之前正确测试应用程序的一项很棒的功能. 有一个主要问题:应用程序的所 ...
- Google发布GAE 1.8.1版
Google发布GAE 1.8.1版 作者:chszs,转载需注明.博客主页: http://blog.csdn.net/chszs 前两天,Google发布了Google AppEngine(即GA ...
- 《Getting Started with WebRTC》第二章 WebRTC技术介绍
<Getting Started with WebRTC>第二章 WebRTC技术介绍 本章作WebRTC的技术介绍,主要讲下面的概念: . 怎样建立P2P的通信 . 有效的信 ...
- appengine_在Google的AppEngine上升级到Java 7
appengine 如果您仍在Google AppEngine上运行Java 6应用程序,则将遇到严重的麻烦. 现在,AppEngine团队将随时发布1.8.9版,该版本将不再支持Java 6应用程序 ...
- 在Google的AppEngine上升级到Java 7
如果您仍在Google AppEngine上运行Java 6应用程序,则将遇到严重的麻烦. 现在,AppEngine团队将随时发布1.8.9版,该版本将不再支持Java 6应用程序的部署. 现有的应用 ...
- gae怎么打开谷歌学术?_了解Google App Engine(GAE)Java API第2部分:设置和简介
gae怎么打开谷歌学术? In the first part of this series, we went through the basic environment GAE offers the ...
- [喵咪的Liunx(1)]计划任务队列脚本后台进程Supervisor帮你搞定
喵咪的Liunx(1)]计划任务队列脚本后台进程Supervisor帮你搞定 前言 哈喽大家好啊,好久不见啊(都快一个月了),要问为什么没有更新博客呢只应为最近在录制PhalApi的视频教程时间比较少 ...
- Celery-分布式任务队列
一.介绍 官方文档:http://docs.celeryproject.org/en/latest/index.html pip3 install celery Celery是一个专注于实时处理和任务 ...
最新文章
- /* * 编程题第四题(20分): 	用1元5角钱人名币兑换5分、2分和1分的硬币(每一种都要有)共一百枚,问共有几种兑换方案?并输出每种方案。 */
- 使用ISA Server 2006的DMZ区保护内网的服务器群
- 面试算法:Maxbuild
- git status中文显示乱码
- Eclipse快捷键(自用)
- Spark SQL程序操作HiveContext
- Streaming 101
- fatal error: gnu/stubs-n64_hard_2008.h: No such file or directory
- 【C语言】如何得出各种数据类型所占内存空间
- 在JS中的数字存储问题
- Having dreams is what makes life tolerable.
- vscode 关闭 编辑框右侧的 预览框
- Java线程之Exchanger
- 【转】初探计算机视觉的三个源头、兼谈人工智能
- 周末整理了一下计算机经典必看好书,并送出6本书
- Leetcode 703. Kth Largest Element in a Stream
- 行业应用 |从实践中读懂银行的敏感数据安全防护思路
- 2022-2000-1978:世纪前后22年
- Excel函数-日期相关函数(计算间隔日期)
- 有道云笔记登录失败,解决办法
热门文章
- Spring MVC Boot Cloud 技术教程汇总
- 解决微服务在docker上部署后无法连接数据库的问题
- Project编写功能点的规划时间
- js 报错说此方法没定义 我明明定义了
- java锁_Java锁
- payara 创建 集群_Apache Payara:让我们加密
- spring 安全编码_Spring安全性和密码编码
- java编写代理服务器_如何编写Java代理
- @namedqueries_在@NamedQueries中枚举@NamedQuery
- php cdi_集成CDI和WebSockets