防止事务超时的方法?

时间:2017-06-01 16:29:14

标签: google-cloud-platform google-cloud-spanner

我正在运行超过10秒的读写事务,并且它们超时(失败时出现ABORTED错误)。有没有办法指定更长的超时?

1 个答案:

答案 0 :(得分:1)

无法指定事务的超时,但您有几个选项:

  1. 您可以每5-8秒定期发出一次executeSql请求 保持您的交易活着。你可以做一些简单的查询 SELECT 1。有关空闲交易的更多信息是here
  2. 您可以使用read-only transaction代替读写事务。只读事务没有超时,只有在删除基础会话时才会中止它们。 (可以手动删除会话,也可以在大约一小时的空闲时间后自动删除。)
  3. 您应该考虑是否真的需要这么长的读写事务。读写事务使用锁和其他资源来阻止其他事务的进展。这通常是一种反模式,具有如此长期的读写事务。