ZooKeeperBasedMembershipTable.UpdateRow 方法

定义

原子方式尝试更新一个接收器的 MembershipEntry,并更新 TableVersion。 如果操作成功,将对表进行以下更改:

  1. 此接收器的 MembershipEntry 将更新为新的 MembershipEntry (旧条目将被新条目完全取代)
  2. 更新的 MembershipEntry 的 eTag 也将是具有新的唯一自动生成 eTag 的 eTag。
  3. 表中的 TableVersion.Version 将更新为新的 TableVersion.Version。
  4. 表中的 TableVersion etag 将更新为新的唯一自动生成的 eTag。 对表所做的所有这些更改、更新新行和更新表版本和相关 etag 时,都应以原子方式发生,或者以原子方式失败,且不会产生副作用。 操作应在以下每种情况下失败:
  5. 表中不存在给定接收器的 MembershipEntry
  6. 给定接收器的 MembershipEntry 存在于表中,但表中的 etag 与提供的 etag 不匹配。
  7. 由于由 TableVersion.VersionEtag 属性指定的给定 TableVersion etag (更新失败,) 与表中的 TableVersion etag 不匹配。
public System.Threading.Tasks.Task<bool> UpdateRow (Orleans.MembershipEntry entry, string etag, Orleans.TableVersion tableVersion);
abstract member UpdateRow : Orleans.MembershipEntry * string * Orleans.TableVersion -> System.Threading.Tasks.Task<bool>
override this.UpdateRow : Orleans.MembershipEntry * string * Orleans.TableVersion -> System.Threading.Tasks.Task<bool>
Public Function UpdateRow (entry As MembershipEntry, etag As String, tableVersion As TableVersion) As Task(Of Boolean)

参数

entry
MembershipEntry

要更新的 MembershipEntry。

etag
String

给定 MembershipEntry 的 etag。

tableVersion
TableVersion

此表的新 TableVersion 及其 etag。

返回

如果更新操作成功,则为 True;否则为 false。

实现

适用于