如何在 Google App Engine 中启动工作人员?

问题描述 投票:0回答:2

我想在 Google App Engine 上的 Django 应用程序中使用 Celery。

我的问题是:如何启动/运行工作人员?

google-app-engine celery google-app-engine-python
2个回答
4
投票

我不熟悉 Celery,但文档告诉我它是一个任务队列库。在这种情况下,您可能最好使用 Google Tasks Service。 任务队列服务长期以来一直是 App Engine 开箱即用的一大优势。

在经典 App Engine 上,所有执行都是通过 HTTP 请求启动的。因此,如果您绝对必须坚持在 App Engine classic 上使用 Celery,则需要找到一种方法来启动工作程序,通过可能在可以无限期运行的后端服务上的 HTTP 请求,或者通过在固定时间触发工作程序的 cron 任务。间隔。目前还不清楚这些是否可行,但可能是,这需要一些尝试和错误。

或者,您可能想考虑使用 Google Compute Engine 实例来运行您的工作线程,或者可能使用 App EngineFlexible,这是 GCE 和 App Engine 经典之间的中间立场。


0
投票

我知道这是一个老问题,但今天关于这个主题的文档仍然很差。 我将描述在 Google 应用程序引擎(标准)上部署的 Django 和 Celery 应用程序中对我有用的内容。 基本上我们将 celery 部署为 Django 应用程序,这是 gae yaml 文件的示例:

# my_celery_app_config.yaml
runtime: pythonXX
service: my_celery_service_name
instance_class: YY

entrypoint: celery -A my_project worker --loglevel=info

我认为类似的东西可以通过更改

entrypoint
然后使用常规的 gae 部署命令用于非 Django 应用程序:

gcloud app deploy my_celery_app_config.yaml --version=1 --quiet --project my_gcp_project
© www.soinside.com 2019 - 2024. All rights reserved.