问题标签 [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.
java - 由于 java.lang.RuntimeException:ManagedChannel 分配站点,我无法定期创建 GCP 任务
我按照https://cloud.google.com/tasks/docs/creating-appengine-tasks中的描述创建任务
它适用于 99% 的情况,但有时我会遇到以下异常:
QueueService 内部方法代码:
google-cloud-platform - 参数 --max-dispatches-per-second:无效的浮点值:'6/m'
我正在使用cloud tasks
,我想设置maxDispatchesPerSecond
为6/m
.
当我尝试使用以下命令更新我的应用程序引擎队列时:
我怎么能这样?
node.js - 有效负载到达工作人员时变得未定义
所以,我正在尝试将任务发送到谷歌云任务队列,但是当它到达那里时,它变得未定义。这是我的代码的快照。我究竟做错了什么?
我正在使用 node.js 和框架 Adonis.js 来做这件事。有效负载包含一个带有用户信息的对象。类似:{ first_name: 'Bla', last_name: 'Bla bla', email: 'bla@bla.com'} 等等。我已经完成了以前真正有效的任务,但我找不到那个错误......所以,这是我的代码片段:
这是我创建任务的地方:
这是我的任务类(顺便说一句,我这样做就像 Cloud Tasks 文档一样):
这是将接受任务的工人:
在到达工人之前,我期待着与我描述的相同的对象,但我只能得到一个“未定义”的值。你们能帮帮我吗?谢谢!:D
javascript - 如何覆盖 Google Cloud Tasks Node.js 客户端的重试配置
我一直在尝试探索是否有办法重试createTask 函数。原因是因为我不时遇到截止日期超出错误,如下所示:
错误:4 DEADLINE_EXCEEDED:Object.exports.createStatusError (/srv/node_modules/grpc/src/common.js:91:15) 超过 Object.onReceiveStatus (/srv/node_modules/grpc/src/client_interceptors.js:1204) :28) 在 InterceptingListener._callNext (/srv/node_modules/grpc/src/client_interceptors.js:568:42) 在 InterceptingListener.onReceiveStatus (/srv/node_modules/grpc/src/client_interceptors.js:618:8) 在回调 ( /srv/node_modules/grpc/src/client_interceptors.js:845:24)
阅读 createTask 函数背后的代码,我发现默认的超时配置只有 10 秒。
目前,我试图通过这样做将超时时间延长到 30 秒(我相信这是最大值):
它似乎有效。但是,如果 API 无法在 30 秒内响应,我也想介绍一下这种情况。
我试过这段代码:
但我没有看到 createTask 被重试。但是根据这里的评论,我们应该能够覆盖包括重试在内的默认设置。
我究竟做错了什么?请帮忙。
google-app-engine - 谷歌云任务孤立
我有一个 App Engine flex 应用程序,它接受一些后台计算的请求并将它们放入任务队列中进行处理。请求以相当恒定的速率从另一个进程发送。重新部署后,请求的处理速度非常快(毫秒),但随后延迟迅速增加到几秒钟,然后是几分钟,然后完全阻塞。我在 Cloud Tasks 中注意到队列中没有任务时正在运行的任务。这些似乎正在耗尽实例资源并停留数小时,远远超过任何超时。一旦我的实例被这些任务阻塞,我的其他进程似乎无法在没有超时的情况下发出请求,即使超时非常高。使用自动缩放,我认为 App Engine 应该启动更多任务来处理传入请求(source)。
任务处理程序并不是非常复杂。他们只是在 Google Spanner 数据库上执行一些操作,并从 GCS 读取/写入(IO 密集型)。
应用配置:
队列配置:
google-app-engine - 如何确保应用引擎应用仅对 Google Cloud Task 可用?
我想创建一个任务处理程序,它应该通过重试等来处理一些任务。
但我希望这个端点只能由谷歌任务中的特定队列触发?
我该怎么处理?最佳做法是什么?
此致
node.js - Node.js 中 GAE 基本扩展的并发性
我正在尝试通过将 Google Cloud Tasks 与运行 node.js 的 Google App Engine 一起使用来运行长任务(> 10 分钟)。
目标是其他应用程序会将数百个任务推送到 Cloud Tasks 队列,并且 Google App Engine 的每个实例都会一个一个地处理这些任务。我正在使用所谓的basic_scaling
选项来允许任务运行长达 24 小时(与 10 分钟限制相比automatic_scaling
)。
目前它可以工作,但似乎一个实例一次处理多个请求。
有没有办法使用“基本”扩展选项来限制每个实例的最大并发请求?
google-cloud-tasks - addQueue.leaseTasks(options) 返回空参数 []
addQueue.leaseTasks(options) 返回空参数 []
当我尝试获取数据时,我创建了一个添加数据的队列 TaskHandle 有一个空的 parms[]
//加入队列 Queue addQueue = queueService.addQueue(); TaskHandle 任务 = addQueue.add(mapFundToTask(fund));
google-api - 使用 HttpRequest 作为 payload_type 时,Google Cloud Tasks 始终将 HttpMethod 设置为 GET
根据此文档 [ https://cloud.google.com/tasks/docs/creating-http-target-tasks ],应该能够创建类型为“http_request”且“http_method”设置为“POST”的任务,但是一旦始终使用方法“GET”创建任务,行为就不是预期的。
在使用 Python 客户端库时遇到此问题后,我决定直接尝试 API 并检查是否是库或 API 本身的问题。
使用产品文档页面 [ https://cloud.google.com/tasks/docs/reference/rest/v2beta3/projects.locations.queues.tasks/create ] 中的“试用此 API”,我尝试创建使用 http_request 和 app_engine_http_request 类型的类似任务,并且始终将 http_method 设置为 POST。
如果我这样设置请求正文:
...任务已创建,方法是 POST,如预期的那样。但是,如果我将请求正文设置为:
...任务已创建,但使用方法 GET 而不是 POST。
这是我在队列中得到的:
我相信这是一个错误,这就是为什么我在这里使用支持页面上推荐的标签 google-apis-explorer 报告它的原因。
无论如何,如果有人能告诉我我是否做错了什么,或者在此期间是否有任何解决方法,我将不胜感激。
谢谢!