Kubernetes的背景任务

时间:2017-11-27 13:17:12

标签: java multithreading google-app-engine kubernetes task

我们最近从使用Google App Engine标准环境转移到Kubernetes(GKE),而在标准环境中,我们使用了Task queues  在后台运行任务以减少延迟。我想在Kubernetes上做同样的事情,我怎么做到这一点,因为Kubernetes上没有任务队列?

我能想到的一个解决方案是使用线程,但不建议在谷歌云上使用线程。我也听说过消息队列和Kubernetes Executor但是我似乎无法获得一个很好的资源来指导我如何使用它们来完成背景任务。

请注意我需要的建议和资源。

1 个答案:

答案 0 :(得分:0)

经过一些研究和咨询,我做了以下调查结果,并希望纠正我在问题中提出的误解。

  1. Google Cloud上不建议使用线程:此声明仅适用于谷歌应用引擎标准环境,其中线程无法在创建它们的请求之外生存。因此,如果您有一个运行3分钟的任务并将其放在一个线程中,那么在60秒限制请求被切断之后,线程就会关闭。这就是为什么在Google App Engine上建议使用Task Queue和Pub Sub的原因。但是,在Kubernetes和Google App Engine灵活环境中,此原则不成立,因此您可以使用线程。
  2. 因此,为了解决我的问题,我只使用了使用执行程序服务管理的Java Threading。