共用方式為


IMembershipTableGrain 介面

定義

以粒紋為基礎的實作的成員資格數據表介面。

[Orleans.Concurrency.Unordered]
public interface IMembershipTableGrain : Orleans.IGrainWithGuidKey, Orleans.IMembershipTable
[<Orleans.Concurrency.Unordered>]
type IMembershipTableGrain = interface
    interface IGrainWithGuidKey
    interface IGrain
    interface IAddressable
    interface IMembershipTable
Public Interface IMembershipTableGrain
Implements IGrainWithGuidKey, IMembershipTable
屬性
實作

方法

CleanupDefunctSiloEntries(DateTimeOffset)

刪除早於的所有無效尋址接收器專案 beforeDate

(繼承來源 IMembershipTable)
DeleteMembershipTableEntries(String)

刪除指定 clusterId 的所有資料表專案

(繼承來源 IMembershipTable)
InitializeMembershipTable(Boolean)

初始化成員資格數據表,將會在所有其他方法之前呼叫

(繼承來源 IMembershipTable)
InitializeMembershipTable(GlobalConfiguration, Boolean, Logger)

初始化成員資格數據表,將會在所有其他方法之前呼叫

(繼承來源 IMembershipTable)
InsertRow(MembershipEntry, TableVersion)

不可部分完成地嘗試插入 (新增) 一個尋址接收器的新 MembershipEntry,也會更新 TableVersion。 如果作業成功,則會對數據表進行下列變更:

  1. 新的 MembershipEntry 將會新增至數據表。
  2. 新新增的 MembershipEntry 也會隨著新的唯一自動產生的 eTag 一起新增。
  3. 數據表中的 TableVersion.Version 將會更新為新的 TableVersion.Version。
  4. 數據表中的 TableVersion etag 將會更新為新的唯一自動產生的 eTag。 數據表的所有變更、插入新的數據列,以及數據表版本和相關 Etag 的更新、應該以不可部分完成的方式發生,或以不可部分完成的方式失敗,而沒有任何副作用。 作業應該會在下列每一個狀況中失敗:
  5. 指定尋址接收器的 MembershipEntry 已存在於資料表中
  6. TableVersion 的更新失敗,因為 TableVersion.VersionEtag 屬性所指定的指定 TableVersion etag () 不符合數據表中的 TableVersion etag。
(繼承來源 IMembershipTable)
ReadAll()

以不可部分完成的方式讀取成員資格數據表的完整內容。 傳回的 MembershipTableData 包含數據表中所有尋址接收器的所有 MembershipEntry 專案,以及此數據表的 TableVersion。 MembershipEntries 和 TableVersion 必須以不可部分完成的方式讀取。

(繼承來源 IMembershipTable)
ReadRow(SiloAddress)

以不可部分完成的方式讀取指定尋址接收器的成員資格數據表資訊。 傳回的 MembershipTableData 包含指定尋址接收器的一個 MembershipEntry 專案,以及此數據表的 TableVersion。 MembershipEntry 和 TableVersion 必須以不可部分完成的方式讀取。

(繼承來源 IMembershipTable)
UpdateIAmAlive(MembershipEntry)

匯報 這個尋址接收器之 MembershipEntry 的 IAmAlive 部分 (數據行) 。 這項作業應該只會更新 IAmAlive 數據行,而不會變更其他數據行。 這項作業是「已變更的寫入」或「就地更新」,且執行時不會進行 etag 驗證。 關於 eTags 更新:這項作業可能會自動更新與指定尋址接收器數據列相關聯的 eTag,但不需要。 它也可以讓 etag 不會變更, (「中途寫入」) 。 關於 TableVersion:此作業不應該變更數據表的 TableVersion。 它應該維持不變。 沒有任何案例會因為數據表語意原因而失敗。 它只能因為網路問題或數據表無法使用而失敗。

(繼承來源 IMembershipTable)
UpdateRow(MembershipEntry, String, TableVersion)

不可部分完成地嘗試更新一個尋址接收器的 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 的更新失敗,因為 TableVersion.VersionEtag 屬性所指定的指定 TableVersion etag () 不符合數據表中的 TableVersion etag。
(繼承來源 IMembershipTable)

擴充方法

AsReference<TGrainInterface>(IAddressable)

傳回所提供之粒紋的具型別參考。

BindGrainReference(IAddressable, IGrainFactory)

將粒紋參考系結至提供的 IGrainFactory

Cast<TGrainInterface>(IAddressable)

傳回所提供之粒紋的具型別參考。

GetGrainIdentity(IGrain)

以粒紋為基礎的實作的成員資格數據表介面。

GetPrimaryKey(IGrain)

以粒紋為基礎的實作的成員資格數據表介面。

GetPrimaryKey(IGrain, String)

以粒紋為基礎的實作的成員資格數據表介面。

GetPrimaryKey(IAddressable)

Guid 回粒紋主鍵的表示。

GetPrimaryKey(IAddressable, String)

Guid 回粒紋主鍵的表示。

GetPrimaryKeyLong(IGrain)

以粒紋為基礎的實作的成員資格數據表介面。

GetPrimaryKeyLong(IGrain, String)

以粒紋為基礎的實作的成員資格數據表介面。

GetPrimaryKeyLong(IAddressable)

long 回粒紋主鍵的表示。

GetPrimaryKeyLong(IAddressable, String)

long 回粒紋主鍵的表示。

GetPrimaryKeyString(IAddressable)

string 回粒紋的主鍵。

IsPrimaryKeyBasedOnLong(IAddressable)

傳回主鍵的一部分是否為類型 long

適用於