gpt4 book ai didi

python - Google App Engine 在 Flex 环境中推送任务超时

转载 作者:太空宇宙 更新时间:2023-11-03 21:48:22 24 4
gpt4 key购买 nike

目前,我有一个 Google App Engine 推送任务队列,旨在通过查询 BigQuery DB 生成报告。

推送任务由cron生成,它将报告任务添加到队列中

这是队列配置:

- name: reporting-push-queue
target: reporting-dispatcher
rate: 1/m
bucket_size: 5
retry_parameters:
min_backoff_seconds: 60
max_backoff_seconds: 120
max_doublings: 5
task_retry_limit: 2
task_age_limit: 10m

对于小型查询,此配置能够正确运行并生成报告。对于稍长的查询,它会超时并在 30 秒后返回 502 状态代码。

根据文档,Flex 环境上的推送任务预计需要长达 10 分钟,但实际情况并非如此。

这是我在 Python 3 中使用的 lib 版本

google-cloud==0.34
google-cloud-bigquery==1.5
google-cloud-pubsub==0.37

这是使用的 yaml 文件。

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT reporting-dispatcher:app
threadsafe: true

runtime_config:
python_version: 3

service: reporting-dispatcher

instance_class: F1
automatic_scaling:
min_num_instances: 1
max_num_instances: 10
max_concurrent_requests: 1

liveness_check:
check_interval_sec: 60
timeout_sec: 60
failure_threshold: 10
success_threshold: 1

readiness_check:
check_interval_sec: 60
timeout_sec: 60
failure_threshold: 10
success_threshold: 1

最佳答案

配置看起来不错!我遇到了类似的问题,在我的例子中,我达到了 传入 http 请求的 32MB 限制。正如谷歌所说:

Incoming bandwidth

The amount of data received by the application fromrequests. Each incoming HTTP request can be no larger than 32MB.This includes:

  • Data received by the application in secure requests and non-secure
  • requests uploads to the Blobstore data received in response to HTTP
  • requests by the URL fetch service [1]

那么您下载的结果表可能对于 #@MB 限制来说太大了?不确定 API 是否计入此,我猜是的。

该任务到底在做什么?如果您只需要运行一个查询,为什么不启动一个作业并每隔几秒轮询一次以查看它是否完成,或者甚至使用另一个任务。 [2]看起来不需要保持连接打开。

顺便说一句,在我看来,32MB 的限制现在小得离谱。

https://googlecloudplatform.github.io/google-cloud-python/latest/bigquery/usage.html#querying-data

关于python - Google App Engine 在 Flex 环境中推送任务超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52304614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com