问题标签 [google-cloud-tasks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1096 浏览

google-cloud-platform - GCP Cloud Tasks:缩短创建先前创建的命名任务的时间

我们正在开发一个基于 GCP Cloud Task 的队列进程,该进程会在特定 Firestore 文档写入触发器触发时发送状态电子邮件。我们使用 Cloud Tasks 的原因是可以在发送电子邮件之前创建延迟(在未来使用 scheduleTime 属性 2 分钟),并控制重复数据删除(通过使用格式化为的任务名称:[firestore-collection-name ]-[doc-id]),因为在创建文档时可以多次触发 Firestore 文档上的“写入”触发器,然后由后端云功能快速更新。

一旦达到任务的延迟期,云任务就会运行,并发送包含更新的 Firestore 文档信息的电子邮件。之后从队列中删除任务,一切都很好。

除了:

如果用户更新 Firestore 文档(比如 20 或 30 分钟后),我们希望重新发送状态电子邮件,但无法使用相同的任务名称创建任务。我们收到以下错误:

这是出乎意料的,因为此时队列为空,因为最后一个任务已成功完成。错误消息中引用的文档说:

如果任务的队列是使用 Cloud Tasks 创建的,则在删除或执行原始任务后约 1 小时内无法创建另一个同名任务。

问题:有没有什么方法可以通过减少时间来绕过这个限制,或者甚至一起取消限制?

0 投票
1 回答
386 浏览

node.js - 可以使用 Node 以编程方式删除 Google Cloud Tasks 吗?

根据有关删除任务和队列的文档,这可以在 Go、Java、Python 和 PHP 中完成。节点被禁用。

有没有办法使用 Node 来做到这一点?我已经在使用节点创建任务。

0 投票
0 回答
219 浏览

javascript - 通过firebase函数调度谷歌云任务时出错,但从任务仪表板调度时没有错误

我正在尝试使用以下代码(带有所需的项目信息)安排一个谷歌云任务在指定的时间段(比如 60 秒)后重复一次。

我试图让它调用返回处理程序 funcA

我可以使用来自谷歌云调度程序控制台的 JSON 调用该函数,但是,每次我触发 schedule() 时,我都会在 console.log(req.body) 甚至打印之前在 JSON 错误中得到一个意外的令牌“-”。我不确定为什么我可以从仪表板毫无问题地调用该函数,但是当我使用相同的 JSON 并从云函数触发它时,我会收到此错误。

谢谢!

PS 我检查了队列是否存在,npm 包都是最新版本,等等。

编辑:

PROMISE 是一个 JSON,其中包含一个沿 {"key": "somestring"} 行的条目。我还能够在谷歌云函数测试器中成功调用提交以下 JSON 的函数。

确切的错误是:

0 投票
2 回答
1022 浏览

google-cloud-functions - 从 Cloud Tasks 触发 HTTP Cloud Function 时出现 PERMISSION_DENIED 403 错误

我正在尝试使用 Cloud Tasks 触发 Cloud Functions教程,但是当我尝试运行创建的任务时出现错误:

我创建了一个具有该Cloud Functions Invoker角色的新服务帐户。并修改了我的代码,以便使用此服务帐户创建任务:

该任务是从云功能创建的。

我还修改了目标 Cloud Function 访问控制,以便可以使用allAuthenticatedUsers角色访问它Cloud Functions Invoker。我可以使用云功能控制台测试触发功能而不会出现任何错误。

我错过了什么?有任何想法吗?

0 投票
0 回答
43 浏览

python - Google Compute Engine,对来自 Cloud Functions 的传入数据进行排队

我正在尝试将云功能与在 Compute Engine 上运行的处理传入数据的 AI 程序连接起来。Cloud Function目前是由Cloud Storage存储桶的变化触发的,每次上传数据都会启动VM,但是当同时上传大量数据时,会多次重启实例,中断数据处理。如何对传入数据进行排队,并让 Compute Engine 实例在之前的进程完成时读取和处理传入数据?我看过 Pub/Sub 和 Cloud Tasks,但这些实现提到了扩展多个实例或连接到 App Engine。是否需要修改分析数据的流程以便按顺序处理数据,或者可以使用 Google Cloud 工具来完成吗?

编辑

附件是文件上传到 GCS 存储桶时运行的云函数。注意触发的实例总是一样的,我的理论是后续的触发器重写元数据,或者立即重新启动实例或更改实例的指令,从而中断先前文件的处理。

0 投票
1 回答
844 浏览

python - 出现错误类型错误:create_task() 需要 1 到 2 个位置参数,但在创建谷歌云任务时给出了 3 个

当我尝试创建 Google Cloud Task 时,我不断收到以下错误。使用的 Google App Engine 运行时是 python38。它工作正常,但在使用 gcp CLI 部署后突然无法正常工作。

0 投票
1 回答
765 浏览

go - 如何使用 Google Cloud Tasks Go 客户端库指定执行延迟?

我按照此文档创建了一个任务,并阅读了“您还可以微调任务的配置,例如安排将来应该执行的时间”。

但是,我仍然不清楚如何在time.Duration我选择的延迟(a)中有效地安排执行,例如“请在 20 分钟内触发这些对象的清理”。

相关的 LOC 是CreateTaskRequest创造,以及Task创造:

我应该考虑为此使用Cloud Scheduler吗?

0 投票
1 回答
164 浏览

google-app-engine - GCP 云任务触发 API 抛出 500 并失败 100%

从 Google Cloud Task 触发的一个 POST 请求不断面临以下问题。节点应用程序部署在 Google App Engine 上。甚至尝试增加实例但没有运气。

任何帮助都会很有用。提前致谢

在此处输入图像描述

0 投票
0 回答
88 浏览

google-app-engine - 如何在 GCP 的时间线上扩展批量计划任务?

我们有微服务在时间轴上通过多个渠道(推送通知、电子邮件、短信)传递通知。

因此,我们将每个计划的通知保存在数据库中,并每 3 小时运行一次 CRON 以查询计划在接下来的 3 小时内发送的通知。我们将结果推送到 PUSH Queue(Cloud Tasks) 以按时运行。

该解决方案效果很好,但是没有。任务增加 例如:5k 任务同时,PUSH QUEUE 延迟调度。

虽然我尝试调整 PUSH QUEUE 调度率和并发性。HTTP 处理程序不会立即扩展以处理此类级别的流量(GAE 逐渐扩展)。所以它会延迟发送通知。

我们之所以这样做,是为了支持。

  • 计划任务交付前的任何时间取消/内容更新。

那么在时间线上无延迟地运行所有计划任务(如 5k 到 20k)的最佳方式是什么?

提前致谢。

0 投票
0 回答
97 浏览

google-app-engine - Google Cloud Tasks 在 asia-southeast1 中的可用性

我不确定这是否是提出此类问题的正确地方。随时将我引导到正确的地方。

根据https://cloud.google.com/about/locations/#asia-pacific Cloud Tasks 在该地区可用asia-southeast1(但 App Engine 在该地区不可用)

但是来自 Cloud Tasks文档

要使用 Cloud Tasks API 访问 Cloud Tasks 服务,您必须有一个项目,其中包含一个 App Engine 应用程序,该应用程序托管您创建的 Cloud Tasks 队列。此应用位于特定区域,用作您的 Cloud Tasks 请求的 LOCATION_ID 参数,因此请记下它。该应用程序充当开发人员创建的任何队列的位置。底层 Cloud Tasks 服务本身在同一位置运行。

我假设应该为特定区域配置 App Engine,以便为该区域使用 Cloud Tasks。而且由于每个项目只能进行 1 个 App Engine 配置,我是否正确地假设我们只能在每个项目的 1 个区域中创建 Cloud Tasks 队列?

asia-southeast1似乎有可用的 Cloud Tasks,但没有 App Engine。https://cloud.google.com/about/locations/#asia-pacific上的信息是否不正确,或者有没有办法在其中创建 Cloud Tasks 队列asia-southeast1