即使我的脚本仍在运行,云运行也会关闭容器

时间:2019-06-23 14:19:10

标签: google-cloud-run

我想在云运行上运行长期运行的作业。该任务可能会执行30分钟以上,并且大部分会发出API请求。 云运行大约20分钟后停止执行,并且从指标来看,它似乎无法识别我的任务仍处于运行状态。因此它可能认为它是在闲置和关闭容器中。我想我可以在作业运行时对服务器运行调用以保持容器存活,但是有没有办法从容器到云运行发出信号,表明作业仍处于活动状态而不关闭容器?

我可以说它正在关闭容器,因为日志刚刚停止。然后,下一次我对云运行端点进行调用时,我可以再次从NodeJS Express中看到“正在监听”日志。

4 个答案:

答案 0 :(得分:4)

  

我想在云运行上运行长期运行的作业。

这是一条红鲱鱼。

在Cloud Run上,不能保证将使用相同的容器。这是最大的努力。

虽然您不处理请求,但您的CPU将被限制为接近0,所以您现在想做的事情(运行后台任务并尝试通过发送请求使容器保持活动状态)不是一个好主意理念。您的应用程序模型很可能不适合Cloud Run,我建议您使用其他计算产品,这些产品也可以让您运行长时间运行的流程。

答案 1 :(得分:3)

根据documentation,Cloud Run将在15分钟后超时,并且该限制无法增加。因此,对于长时间运行的任务,Cloud Run不是一个很好的解决方案。如果您的工作需要长时间运行,请考虑将工作委派给Compute Engine或其他没有时间限制的产品。

答案 2 :(得分:0)

是的,您可以使用。您可以创建一个计时器,该计时器在5分钟后调用您自己的api,因此15分钟后没有超时。只要执行计时器,它就会在您的服务器上创建一个虚拟请求。

答案 3 :(得分:0)

如果您的后端请求在 1 小时内完成,您可以将容器的请求超时从 5 分钟增加到 1 小时