【问题标题】:Google App Engine Cloud SQL too many connectionsGoogle App Engine Cloud SQL 连接过多
【发布时间】:2014-07-19 08:43:33
【问题描述】:

我有一个在 Google App Engine 上运行的应用程序,并使用任务队列 Api 在后台执行一些繁重的工作。其中一些任务需要连接到 Cloud SQL 才能完成工作。在规模上,我尝试一次连接到 Cloud SQL 的任务太多。我需要的是共享客户端的某种数据服务层,这样任务本身就不会与 Cloud SQL 建立单独的连接。如果有人有任何想法,我很想听听。

【问题讨论】:

    标签: google-app-engine google-cloud-sql


    【解决方案1】:

    是的,您实际上可以这样做,但您需要进行一些规划、编码和配置。

    一个想法是使用拉队列(而不是推队列)。使用拉取队列,您可以安排任务并在应用程序的单独模块中执行它们。该模块的硬件可以与您的主模块分开配置,因此您可以避免过多的实例服务请求,从而让您更好地使用连接池。

    当然,根据您获得的流量,您可能需要决定要运行多少并发后端实例(并连接到您的数据库)以避免/最小化争用。

    说起来容易做起来难,但这里有两个资源可以帮助你:

    1. App 引擎模块 - https://developers.google.com/appengine/docs/java/modules/
    2. 拉队列 - https://developers.google.com/appengine/docs/python/taskqueue/overview-pull

    【讨论】: