ris*_*han 9 redis celery flask google-cloud-platform google-cloud-run
我有一个 Flask 应用程序(使用 Dockerfile)部署到 Google Cloud Run。该应用程序的结构与Flask Mega 教程非常相似。它使用在 Cloud SQL 上运行的 Postgres 数据库。
该应用程序需要处理后台任务。看起来Celery或Redis Queue是最常见的方法。我不想使用Cloud Tasks ,因为它违反了12 要素应用程序范式中的开发/产品对等规则。
Redis Queue 在我的本地计算机上启动和运行很简单,但我在任何地方都找不到有关如何将 Redis Queue 与在 Cloud Run 上运行的 Flask 应用程序一起使用的最佳实践指南。
我决定为我的 Redis 实例使用 Google 的 Memorystore,但现在我不确定运行 Redis 工作线程的最佳方式是什么。我希望这些工作人员随着 Flask 服务器将更多任务添加到 Redis 队列而扩展(当发出越来越多的 HTTP 请求时 Cloud Run 扩展实例的方式)。现在,我正在考虑将一个工作程序(带有任务功能的 Flask 应用程序的副本)部署到 App Engine,但这似乎不是一个正确的解决方案。
人们对部署 RQ / celery 工作人员有何建议?我很高兴完全改变我的部署策略(和平台),以实现一个简单的、可扩展的架构,可以在本地开发设置中轻松复制。
小智 1
我已经通过 GCP 上的 Flask 应用程序为 Redis 队列实现了这一点。要实现这一目标,您必须执行以下几个步骤:
| 归档时间: |
|
| 查看次数: |
1147 次 |
| 最近记录: |