首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >云调度程序作业访问HTTPS端点并记录失败(状态502),但服务器正在返回成功响应(状态200)

云调度程序作业访问HTTPS端点并记录失败(状态502),但服务器正在返回成功响应(状态200)
EN

Stack Overflow用户
提问于 2021-03-08 08:42:25
回答 1查看 463关注 0票数 3

我有一个云调度程序任务,应该每小时点击我的API来更新一些价格。这些作业大约需要80秒才能运行。

它所做的事情如下:

代码语言:javascript
复制
POST https://www.example.com/api/jobs/update-prices

我的应用程序托管在Firestore上,/api/jobs/**由名为server-jobs的云运行服务处理。

firebase.json

代码语言:javascript
复制
{
  "source": "/api/jobs/**",
  "run": { "serviceId": "server-jobs", "region": "europe-west1" }
},

几乎一切都很好。请参阅我的server-jobs服务中的日志:

您可以看到Google-Cloud-Scheduler用户代理。你可以看到所有的反应都是200,OK。

但是在控制台上,这项工作似乎失败了:

请参阅云调度程序日志:

它记录以下错误:

状态502 "type.googleapis.com/google.cloud.scheduler.logging.AttemptFinished“

但那502根本不是从我的服务器开始的。

详细信息

我有两个不同的自定义域连接到那个Firebase主机。这个错误只发生在其中一个领域。我有两个云调度器作业(配置完全相同)到每个连接域。

代码语言:javascript
复制
JOB 1 https://www.example1.com/api/jobs/update-prices SUCCEEDS (job takes ~35 seconds)
JOB 2 https://www.example2.com/api/jobs/update-prices FAILS (job takes ~80 seconds)

我不认为这份工作的持续时间和它有任何关系。因为一开始,我运行的任务完全相同,但是直接访问Cloud (而不通过Firebase托管代理),并且它的记录是成功的。这个错误只在我开始访问连接的Firebase托管域之后才开始,而不是直接访问Cloud服务URL。

这些域名在不同的地方和不同的国家注册。但两者都有适当的配置,并在生产中运行良好。

我的服务器上的每一个日志都是成功的。

更新

我刚注意到一种模式:

似乎错误是在作业启动后1分(60秒)触发的。所以这份工作的持续时间可能和它有关。因为需要80秒的任务是“失败”,而另一个需要35秒的任务是成功的。这是超时问题吗?什么是回502号?因为我的服务器正在正常工作,正如您从日志中看到的那样。

更新2

我刚刚用gcloud scheduler jobs descript JOB_NAME检查了作业,这两个作业都配置了attemptDeadline: 180s。所以我的工作时间不应该是一个问题,因为两者都不到180秒。

更新3

正如我所怀疑的,工作时间似乎是问题所在。

我对我的API处理程序函数进行了以下测试:

res.sendStatus(200)

  • RESULT:
  • 等待59秒, Cloud将这两个任务显示为成功

还包括:

res.sendStatus(200)

  • RESULT:
  • 等待65秒, Cloud将两个作业显示为失败

这条链上似乎有60秒的门槛:

云Scheduler

  • Firebase Hosting

  • Cloud
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-08 10:55:09

我想火库托管是罪魁祸首。

在Firebase主机上存在默认的60秒请求超时。这就是为什么即使在服务器上成功执行任务也会看到错误的原因。

来自:https://firebase.google.com/docs/hosting/functions

注意:防火墙托管需要60秒的请求超时.即使您将HTTPS函数配置为更长的请求超时,如果您的函数运行时间超过60秒,仍然会收到HTTPS状态代码504 (请求超时)。要支持需要更长计算时间的动态内容,请考虑使用App灵活的环境。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66526644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档