Cloud Functions 中的 Cloud Spanner 会话处理

Calle Engene

我正在使用带有 nodeJS 客户端库的 Cloud Functions 将数据插入到 Spanner 中。该函数由 Pub/sub 调用约 2 次/秒,并使用事务插入数据。

在阅读文档时,它清楚地表明您必须通过调用以下方法关闭会话:database.close(); 当我这样做时,它会引发错误:

Error: Database is closed. at SessionPool.<anonymous>   
(/srv/node_modules/@google-cloud/spanner/build/src/session-   
pool.js:264:23)
at Generator.next (<anonymous>) at /srv/node_modules/@google-
cloud/spanner/build/src/session-pool.js:22:71 at new Promise
(<anonymous>) at __awaiter (/srv/node_modules/@google-
cloud/spanner/build/src/session-pool.js:18:12) at SessionPool._acquire 
(/srv/node_modules/@google-cloud/spanner/build/src/session-
pool.js:262:16) at SessionPool.getReadSession 
(/srv/node_modules/@google-cloud/spanner/build/src/session-
pool.js:204:14) at Database.runStream (/srv/node_modules/@google-
cloud/spanner/build/src/database.js:1157:20) at Database.run 
(/srv/node_modules/@google-cloud/spanner/build/src/database.js:988:14) 
at PromiseCtor (/srv/node_modules/@google-
cloud/promisify/build/src/index.js:71:28)

所以我的问题是:在云函数中 Spanner 会话的处理方式是否不同?它是否缓存会话以供下次调用?我做错了什么,我不应该在云函数中调用 database.close() 吗?

我在返回 transaction.commit() 和调用 transaction.end() 之后调用 database.close();

谢谢!

路易斯·C

正如您在评论中提到的,每次都会创建一个新会话,这在 docs 中提到

此外,您提到教程没有 database.close() 在我这边正确运行,所以我查看了Cloud Functions 和 Cloud SQL上的文档,这里说明:

我们建议您不要在函数调用结束时关闭连接。如果您不在全局范围内使用池,和/或如果您在函数范围内创建单独的连接,那么您应该在函数返回之前关闭这些连接。

所以这应该适用于任何连接,包括扳手

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

数组索引在Cloud Spanner中超出范围

来自分类Dev

使用Cloud Spanner从数据库中删除记录

来自分类Dev

Cloud Spanner 中的低读取吞吐量

来自分类Dev

Cloud Functions 中的 Cloud Firestore 查询

来自分类Dev

Firebase Cloud Functions中引发未处理的错误

来自分类Dev

单节点Cloud Spanner实例表现不佳

来自分类Dev

Cloud Spanner JSON函数大小限制

来自分类Dev

在Google的Cloud Spanner中进行全文搜索

来自分类Dev

Google Cloud Spanner 是否支持“结构”类型?

来自分类Dev

Cloud Spanner 是否支持 TRUNCATE TABLE 命令?

来自分类Dev

Google Cloud Spanner和Cloud SQL有什么区别?

来自分类Dev

在 Firebase 的 Cloud Functions 上处理 IPN

来自分类Dev

如何在Spring Cloud GCP中覆盖默认的Spanner转换器之一

来自分类Dev

在 Cloud Functions 中按时间戳从 Cloud Firestore 查询

来自分类Dev

com.google.cloud.spanner.SpannerException:DEADLINE_EXCEEDED

来自分类Dev

Google Cloud Spanner - 无法使用 REST API 创建表

来自分类Dev

查看 Google Cloud Spanner 上单独实例的负载

来自分类Dev

从 Google Cloud Spanner 报告 - Google Data Studio 连接器

来自分类Dev

使用Python脚本中的Google Cloud Functions从Google Cloud Storage中读取CSV

来自分类Dev

如何通过 Angular 中的路由在 Cloud Functions 中执行对 Cloud Firestore 的添加?

来自分类Dev

Python子进程在Google Cloud Functions中不起作用

来自分类Dev

如何在Google Cloud Functions中调试Axios错误?

来自分类Dev

在Firebase Cloud Functions中为每个用户运行调度程序?

来自分类Dev

Google Cloud Functions(Python)中的随机连接错误

来自分类Dev

带有打字稿和axios的Cloud Functions中的CORS

来自分类Dev

Cloud Functions中的puppeteer.launch抛出错误

来自分类Dev

Cloud Functions中的Google Identity Platform身份验证

来自分类Dev

Firebase中的Cloud Functions:调用参数的类型为文档快照

来自分类Dev

Typescript中的React + Firebase Cloud Functions无法部署

Related 相关文章

  1. 1

    数组索引在Cloud Spanner中超出范围

  2. 2

    使用Cloud Spanner从数据库中删除记录

  3. 3

    Cloud Spanner 中的低读取吞吐量

  4. 4

    Cloud Functions 中的 Cloud Firestore 查询

  5. 5

    Firebase Cloud Functions中引发未处理的错误

  6. 6

    单节点Cloud Spanner实例表现不佳

  7. 7

    Cloud Spanner JSON函数大小限制

  8. 8

    在Google的Cloud Spanner中进行全文搜索

  9. 9

    Google Cloud Spanner 是否支持“结构”类型?

  10. 10

    Cloud Spanner 是否支持 TRUNCATE TABLE 命令?

  11. 11

    Google Cloud Spanner和Cloud SQL有什么区别?

  12. 12

    在 Firebase 的 Cloud Functions 上处理 IPN

  13. 13

    如何在Spring Cloud GCP中覆盖默认的Spanner转换器之一

  14. 14

    在 Cloud Functions 中按时间戳从 Cloud Firestore 查询

  15. 15

    com.google.cloud.spanner.SpannerException:DEADLINE_EXCEEDED

  16. 16

    Google Cloud Spanner - 无法使用 REST API 创建表

  17. 17

    查看 Google Cloud Spanner 上单独实例的负载

  18. 18

    从 Google Cloud Spanner 报告 - Google Data Studio 连接器

  19. 19

    使用Python脚本中的Google Cloud Functions从Google Cloud Storage中读取CSV

  20. 20

    如何通过 Angular 中的路由在 Cloud Functions 中执行对 Cloud Firestore 的添加?

  21. 21

    Python子进程在Google Cloud Functions中不起作用

  22. 22

    如何在Google Cloud Functions中调试Axios错误?

  23. 23

    在Firebase Cloud Functions中为每个用户运行调度程序?

  24. 24

    Google Cloud Functions(Python)中的随机连接错误

  25. 25

    带有打字稿和axios的Cloud Functions中的CORS

  26. 26

    Cloud Functions中的puppeteer.launch抛出错误

  27. 27

    Cloud Functions中的Google Identity Platform身份验证

  28. 28

    Firebase中的Cloud Functions:调用参数的类型为文档快照

  29. 29

    Typescript中的React + Firebase Cloud Functions无法部署

热门标签

归档