10 月,开发者不可错过的开源大数据大会-2021 WeDataSphere 社区大会深圳站 了解详情
写点什么

谷歌发布任务队列服务 Cloud Tasks

2018 年 10 月 10 日

谷歌发布了 Cloud Tasks ,这是一项针对谷歌云平台 App Engine 服务的任务队列服务。Cloud Tasks 允许从应用程序中异步执行任务,解耦服务并支持长期运行和在后台运行的活动。

借助 Cloud Tasks,应用程序可以将任务、由应用程序开发人员定义的工作单元放在分布式队列中,然后将这些队列推送给处理服务。任务队列的概念已经经过所有大型云提供商(如带有 SQS 的 AWS 和带有服务总线的Azure)的实际验证。实际上,Cloud Tasks 是谷歌 Task Queue 服务的进阶版,它也提供了相同的概念。现在,所有现有的和新的任务队列的管理将整合到 Cloud Tasks 之下,正如谷歌云平台产品经理 Morgan Hallmon 在公告中所述的那样。

多年来,App Engine 客户利用了 Task Queue,这是一种支持异步任务执行的 App Engine 服务。随着 Cloud Tasks 的发布,任务队列的所有管理工作现在都集中到 Cloud Tasks 控制台、命令行和 API 中。

使用任务队列有几个好处,例如让系统变得松散耦合,将工作负载分摊给后台服务,以及通过为系统之间的任务提供存储来提高可靠性。

来源:  https://en.wikipedia.org/wiki/Scheduling_(computing)#task_queue

最初,Cloud Tasks 似乎与谷歌的其他队列服务(如 Pub/Sub)有很多重叠的地方。虽然相似之处是显而易见的,但两者之间的用例确实不同。Google 将 Pub/Sub 定位为专注于大数据和网络运营的服务,提供高吞吐量,同时保持对内容和目标应用程序的不可知性。而 Cloud Tasks 提供的是托管执行服务,可以处理很多显式的命令,这些命令通过后台进程来处理。

此外,与 Task Queues 不同的是,Cloud Tasks 将集成到整个 GCP 服务范围内。Cloud Tasks 的文档描述了一些典型的用例,包括加速用户体验、在发生事件期间提供持久性以及平缓流量峰值。

通过将可能较慢的后台操作(如数据库更新)委派给进程服务来加快响应速度;

在发生意外事件的情况下保留请求;

将非面向用户的任务从用户请求流程中移除,以此来实现平缓流量高峰。

由于 Cloud Tasks 是一种托管服务,它负责资源的配置和管理,让开发人员可以专注于创建和处理其他任务。此外,Cloud Tasks 根据实际执行时间计费。客户端库由谷歌提供,支持 Java、Python、Node.js、PHP 和 Go 等几种流行语言,同时还提供了 REST API,可以从任何应用程序中将任务添加到队列。

来源: https://cloud.google.com/blog/products/application-development/announcing-cloud-tasks-a-task-queue-service-for-app-engine-flex-and-second-generation-runtimes

要使用 Cloud Tasks,需要执行几个步骤。从创建任务队列开始,在创建好队列后,发布任务的应用程序就会将任务推送到队列中,队列存储消息并返回 OK。随后,Cloud Tasks 服务将任务发送给后台的处理应用程序进行处理。任务处理完成后,后台程序将 OK 作为 200 到 299 之间的 HTTP 状态码发送回队列,队列将对应的任务移除。此外,如果处理程序未及时处理完任务,Cloud Tasks 将自动再次发送任务,提供重试和至少一次交付的能力。

查看英文原文 Google Announces Task Queue Service Cloud Tasks

2018 年 10 月 10 日 19:001386
用户头像

发布了 731 篇内容, 共 381.8 次阅读, 收获喜欢 1895 次。

关注

评论

发布
暂无评论
发现更多内容

十年一梦,小米的原罪得到救赎了吗?

脑极体

Suricata-流的处理

Phantasm

网络安全 suricata flow

求刚好大于当前数组组合,Code Review最佳实践,JVM框架原理,JVM垃圾回收原理 John 易筋 ARTS 打卡 Week 12

John(易筋)

Code Review ARTS 打卡计划 JVM虚拟机原理 JVM垃圾回收原理 Array算法

Java 常见的几种 OOM

hepingfly

Java OOM

程序的机器级表示-控制

引花眠

计算机基础

Requests模块基本操作

骆俊

如何让区块链技术能够更好赋能数字社会建设

CECBC区块链专委会

区块链 数字经济

面试这么撩准拿offer,HashMap深度学习,扰动函数、负载因子、扩容拆分,原理和实践验证,让懂了就是真的懂!

小傅哥

Java 面试 hashmap 负载因子 扰动函数

当实证资产定价遇上机器学习

分析101

人工智能 学习 金融科技 金融 资产定价

BGP、OSPF、MPLS路由协议RFC分享

Phantasm

应用开发基础之-并发编程

superman

ARTS-WEEK10

一周思进

ARTS 打卡计划

ARTS打卡 第11周

引花眠

ARTS 打卡计划

视读——沟通的艺术,看入人里,看出人外(第二章)

废材姑娘

读书笔记 视觉笔记

图文讲解 AQS ,一起看看 AQS 的源码……(图文较长)

程序员小航

AQS jdk源码 源码阅读 java 并发

学了那么多技术,为何依然成不了架构师

菜根老谭

架构设计原则

那些不可貌相的代码规范

废材姑娘

代码质量

吃灰的旧显示器别扔!

小匚

学习 随笔杂谈

深化区块链技术的应用 体现其价值产业发展良机

CECBC区块链专委会

区块链技术 数字经济

微服务、DDD

chenzt

ARTS打卡Week 10

teoking

如何理解Java8 的函数式编程

Rayjun

Java 函数式编程

ARTS Week11

时之虫

ARTS 打卡计划

十多位全球技术专家,为你献上近十个小时的.Net微服务介绍

newbe36524

微服务 .net core netcore 容器化

计算机网络基础(十六)---传输层-可靠传输的基本原理

书旅

计算机网络 网络 协议族 网络层

第十章作业

武鹏

关于 Bash 的 10 个常见误解

柴锋

bash Linux DevOps Shell

设计模式之——JDK动态代理的源码分析

诸葛小猿

动态代理 cglib 代理模式 Proxy

ARTS 打卡(20.07.20-20.07.26)

小王同学

LeetCode题解:21. 合并两个有序链表,迭代,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

热潮-区块链的价值能够体现在哪些方面?

CECBC区块链专委会

区块链技术 标准化 应用价值

谷歌发布任务队列服务Cloud Tasks-InfoQ