【问题标题】:How can I run background worker process in Google Cloud?如何在 Google Cloud 中运行后台工作进程?
【发布时间】:2019-04-03 17:24:50
【问题描述】:

根据标题,如何在 Google Cloud 中运行后台工作进程,例如 Heroku worker dynos

我阅读了 Google Cloud 文档,并且文章似乎假设我总是想部署一个 Web 应用程序。我根本不想要一个 Web 应用程序。然后还有其他关于 Cloud Pub/Sub、Task Queues、Cloud Tasks、Cloud Functions、Cron 等的文档,它们似乎只是不同类型的事件触发的一次性例程。

我想要的只是一个工作进程,它可以处理和更新数据库,并且可以在请求时优雅地关闭,例如 Heroku 中的SIGTERM

【问题讨论】:

  • 对我来说这听起来像是Cron 的工作。创建一个运行 cron 作业以更新数据库的 vm。这就是你想要的吗?
  • 工作进程“做什么”?它怎么知道什么时候工作?这似乎是 GCP 提供的不同计算选项的核心原则。如果基于时间,那么 Cloud Scheduler。如果是 Web 请求,则为 Cloud Functions、App Engine 或 Compute Engine。如果总是运行裸机操作系统,那么 Compute Engine 或 Kubernetes Engine。接下来是扩展的概念……一个或多个作为需求的函数?
  • @Kolban 工作进程可以做除 Web 服务器进程之外的任何事情。例如,一个终端服务进程无限期地监听客户端并接受命令,一个后台进程来抓取互联网,一个后台进程通过套接字连接来获取最新的加密货币价格并近乎实时地更新数据库。让我暂时检查一下 Compute Engine 或 Kubernetes Engine。谢谢。

标签: google-cloud-platform


【解决方案1】:

简答:Google Kubernetes Engine 上的容器。

您提到的所有 GCP 解决方案都需要从 HTTP 请求、事件、任务或时间触发,才能运行您的代码。

如果您只想让作业在后台运行,您可以创建一个运行单个永无止境进程(例如 java、node 等)的容器并将其部署到 GKE(查看 DaemonSet 和 StatefulSet)

替代解决方案:Google Compute Engine

【讨论】:

    猜你喜欢
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多