共用方式為


PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry> 類別

定義

建構以循序讀取和寫入主要複本為基礎的記錄檢視配接器一般範本。 我們使用此方式來建構各種不同的記錄一致性提供者,這些提供者都遵循相同的基本模式, (讀取和寫入主要複本的最新檢視,並在寫入) 之後傳送通知。

請注意,記錄本身是暫時性的,也就是實際上不會儲存至儲存體 - 只有最新的檢視和部分中繼資料 (記錄位置,而寫入旗標) 儲存在主要複本中。 當然,只能使用粒紋排程器 (交錯此配接器的呼叫,當然) 。

子類別會覆寫 ReadAsync 和 WriteAsync,以讀取/寫入主要複本。 對主要複本的呼叫會序列化,亦即永遠不會交錯。

public abstract class PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry> : Orleans.LogConsistency.ILogViewAdaptor<TLogView,TLogEntry>, Orleans.LogConsistency.ILogViewRead<TLogView,TLogEntry>, Orleans.LogConsistency.ILogViewUpdate<TLogEntry> where TLogView : class, new() where TLogEntry : class where TSubmissionEntry : SubmissionEntry<TLogEntry>
public abstract class PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry> : Orleans.EventSourcing.ILogViewAdaptor<TLogView,TLogEntry>, Orleans.EventSourcing.ILogViewRead<TLogView,TLogEntry>, Orleans.EventSourcing.ILogViewUpdate<TLogEntry> where TLogView : class, new() where TLogEntry : class where TSubmissionEntry : SubmissionEntry<TLogEntry>
type PrimaryBasedLogViewAdaptor<'LogView, 'LogEntry, 'SubmissionEntry (requires 'LogView : null and 'LogView : (new : unit -> 'LogView) and 'LogEntry : null and 'SubmissionEntry :> SubmissionEntry<'LogEntry>)> = class
    interface ILogViewAdaptor<'LogView, 'LogEntry (requires 'LogView : null and 'LogView : (new : unit -> 'LogView) and 'LogEntry : null)>
    interface ILogViewRead<'LogView, 'LogEntry (requires 'LogView : null and 'LogView : (new : unit -> 'LogView) and 'LogEntry : null)>
    interface ILogViewUpdate<'LogEntry (requires 'LogEntry : null)>
    interface ILogConsistencyDiagnostics
Public MustInherit Class PrimaryBasedLogViewAdaptor(Of TLogView, TLogEntry, TSubmissionEntry)
Implements ILogViewAdaptor(Of TLogView, TLogEntry), ILogViewRead(Of TLogView, TLogEntry), ILogViewUpdate(Of TLogEntry)

類型參數

TLogView

記錄的使用者定義檢視

TLogEntry

記錄專案的型別

TSubmissionEntry

儲存在擱置佇列中的提交專案類型

繼承
PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry>
實作

建構函式

PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry>(ILogViewAdaptorHost<TLogView,TLogEntry>, TLogView, ILogConsistencyProtocolServices)

為指定的參數建構 實例。

PrimaryBasedLogViewAdaptor<TLogView,TLogEntry,TSubmissionEntry>(ILogViewAdaptorHost<TLogView,TLogEntry>, TLogView, ILogConsistencyProtocolServices)

為指定的參數建構 實例。

欄位

LastPrimaryIssue

儲存讀取或更新主要複本時發生的最後一個問題。 如果成功,則為 null。

stats

建構以循序讀取和寫入主要複本為基礎的記錄檢視配接器一般範本。 我們使用此方式來建構各種不同的記錄一致性提供者,這些提供者都遵循相同的基本模式, (讀取和寫入主要複本的最新檢視,並在寫入) 之後傳送通知。

請注意,記錄本身是暫時性的,也就是實際上不會儲存至儲存體 - 只有最新的檢視和部分中繼資料 (記錄位置,而寫入旗標) 儲存在主要複本中。 當然,只能使用粒紋排程器 (交錯此配接器的呼叫,當然) 。

子類別會覆寫 ReadAsync 和 WriteAsync,以讀取/寫入主要複本。 對主要複本的呼叫會序列化,亦即永遠不會交錯。

屬性

Configuration

這個粒紋實例目前的多重叢集組態。

ConfirmedVersion

記錄檔已確認前置詞的長度

ConfirmedView

記錄的確認檢視 (僅反映已確認的專案)

Host

使用此配接器的粒紋。

Services

在不同叢集中的粒紋實例之間實作通知所需的執行時間服務。

SupportSubmissions

此叢集是否支援提交更新

TentativeView

記錄的本機暫訂檢視 (反映已確認和未確認的專案)

UnconfirmedSuffix

尚未出現在已確認前置詞中之提交的專案清單。

UnresolvedConnectionIssues

會傳回尚未還原之所有連線健康情況問題的清單。 例如,與主要叢集通訊或嘗試通知其他叢集時,觀察到這類問題。

方法

BroadcastNotification(INotificationMessage, String)

將通知訊息傳送至所有遠端實例

ConfirmSubmittedEntries()

確認所有提交的專案。

等到先前提交的所有專案都出現在記錄檔的已確認前置詞中。

CopyTentativeState()

建構以循序讀取和寫入主要複本為基礎的記錄檢視配接器一般範本。 我們使用此方式來建構各種不同的記錄一致性提供者,這些提供者都遵循相同的基本模式, (讀取和寫入主要複本的最新檢視,並在寫入) 之後傳送通知。

請注意,記錄本身是暫時性的,也就是實際上不會儲存至儲存體 - 只有最新的檢視和部分中繼資料 (記錄位置,而寫入旗標) 儲存在主要複本中。 當然,只能使用粒紋排程器 (交錯此配接器的呼叫,當然) 。

子類別會覆寫 ReadAsync 和 WriteAsync,以讀取/寫入主要複本。 對主要複本的呼叫會序列化,亦即永遠不會交錯。

DisableStatsCollection()

停用統計資料集合

EnableStatsCollection()

方法為虛擬,因此子類別可以新增自己的事件

EnsureClusterJoinedAsync()

封鎖直到此叢集加入多叢集為止。

GetCaughtUpWithConfigurationAsync(DateTime)

等候此叢集收到至少與時間戳記一樣新的設定

GetConfirmedVersion()

已快取全域狀態的讀取版本。

GetCurrentBatchOfUpdates()

建構以循序讀取和寫入主要複本為基礎的記錄檢視配接器一般範本。 我們使用此方式來建構各種不同的記錄一致性提供者,這些提供者都遵循相同的基本模式, (讀取和寫入主要複本的最新檢視,並在寫入) 之後傳送通知。

請注意,記錄本身是暫時性的,也就是實際上不會儲存至儲存體 - 只有最新的檢視和部分中繼資料 (記錄位置,而寫入旗標) 儲存在主要複本中。 當然,只能使用粒紋排程器 (交錯此配接器的呼叫,當然) 。

子類別會覆寫 ReadAsync 和 WriteAsync,以讀取/寫入主要複本。 對主要複本的呼叫會序列化,亦即永遠不會交錯。

GetNumberPendingUpdates()

建構以循序讀取和寫入主要複本為基礎的記錄檢視配接器一般範本。 我們使用此方式來建構各種不同的記錄一致性提供者,這些提供者都遵循相同的基本模式, (讀取和寫入主要複本的最新檢視,並在寫入) 之後傳送通知。

請注意,記錄本身是暫時性的,也就是實際上不會儲存至儲存體 - 只有最新的檢視和部分中繼資料 (記錄位置,而寫入旗標) 儲存在主要複本中。 當然,只能使用粒紋排程器 (交錯此配接器的呼叫,當然) 。

子類別會覆寫 ReadAsync 和 WriteAsync,以讀取/寫入主要複本。 對主要複本的呼叫會序列化,亦即永遠不會交錯。

GetStats()

取得狀態

InitializeConfirmedView(TLogView)

設定確認檢視 (空白記錄檔檢視)

IsMyClusterJoined()

建構以循序讀取和寫入主要複本為基礎的記錄檢視配接器一般範本。 我們使用此方式來建構各種不同的記錄一致性提供者,這些提供者都遵循相同的基本模式, (讀取和寫入主要複本的最新檢視,並在寫入) 之後傳送通知。

請注意,記錄本身是暫時性的,也就是實際上不會儲存至儲存體 - 只有最新的檢視和部分中繼資料 (記錄位置,而寫入旗標) 儲存在主要複本中。 當然,只能使用粒紋排程器 (交錯此配接器的呼叫,當然) 。

子類別會覆寫 ReadAsync 和 WriteAsync,以讀取/寫入主要複本。 對主要複本的呼叫會序列化,亦即永遠不會交錯。

LastConfirmedView()

讀取快取的全域狀態。

MakeSubmissionEntry(TLogEntry)

為提交的記錄專案建立提交專案。 使用類型參數,讓我們可以將通訊協定特定資訊新增至這個類別。

Merge(INotificationMessage, INotificationMessage)

合併兩個通知訊息,以進行批次處理。 覆寫以處理通知子類型。

NotifyPromises(Int32, Boolean)

傳送失敗通知

OnConfigurationChange(MultiClusterConfiguration)

當多重叢集的設定變更時呼叫。

OnMessageReceived(ILogConsistencyProtocolMessage)

處理通訊協定訊息。

OnMessageReceived(ILogConsistencyProtocolMessage)

處理通訊協定訊息。

OnMultiClusterConfigurationChange(MultiClusterConfiguration)

當組態變更時,由 MultiClusterOracle 呼叫。

OnNotificationReceived(INotificationMessage)

處理通知訊息。 覆寫此專案以處理通知子類型。

OnProtocolMessageReceived(ILogConsistencyProtocolMessage)

從網路呼叫

OnProtocolMessageReceived(ILogConsistencyProtocolMessage)

從網路呼叫

PostOnActivate()

建構以循序讀取和寫入主要複本為基礎的記錄檢視配接器一般範本。 我們使用此方式來建構各種不同的記錄一致性提供者,這些提供者都遵循相同的基本模式, (讀取和寫入主要複本的最新檢視,並在寫入) 之後傳送通知。

請注意,記錄本身是暫時性的,也就是實際上不會儲存至儲存體 - 只有最新的檢視和部分中繼資料 (記錄位置,而寫入旗標) 儲存在主要複本中。 當然,只能使用粒紋排程器 (交錯此配接器的呼叫,當然) 。

子類別會覆寫 ReadAsync 和 WriteAsync,以讀取/寫入主要複本。 對主要複本的呼叫會序列化,亦即永遠不會交錯。

PostOnDeactivate()

在停用期間于使用者定義 OnDeactivateAsync() 之後呼叫。

PreOnActivate()

在啟用期間呼叫,在使用者定義 OnActivateAsync() 之前呼叫。

ProcessNotifications()

處理背景工作週期期間的預存通知。 覆寫以處理通知子類型。

ReadAsync()

讀取最新的主要狀態。 必須封鎖/重試,直到成功為止。 不應該擲回例外狀況,但會將例外狀況記錄在 LastPrimaryIssue

RemoveStaleConditionalUpdates()

流覽更新並移除所有已失敗的條件式更新

RetrieveLogSegment(Int32, Int32)

建構以循序讀取和寫入主要複本為基礎的記錄檢視配接器一般範本。 我們使用此方式來建構各種不同的記錄一致性提供者,這些提供者都遵循相同的基本模式, (讀取和寫入主要複本的最新檢視,並在寫入) 之後傳送通知。

請注意,記錄本身是暫時性的,也就是實際上不會儲存至儲存體 - 只有最新的檢視和部分中繼資料 (記錄位置,而寫入旗標) 儲存在主要複本中。 當然,只能使用粒紋排程器 (交錯此配接器的呼叫,當然) 。

子類別會覆寫 ReadAsync 和 WriteAsync,以讀取/寫入主要複本。 對主要複本的呼叫會序列化,亦即永遠不會交錯。

Submit(TLogEntry)

提交要附加至全域記錄檔的單一記錄專案,不論是在目前或稍後的任何位置。

SubmitRange(IEnumerable<TLogEntry>)

提交一系列記錄專案,以不可部分完成的方式附加至全域記錄檔,不論是在目前或稍後的任何位置。

Synchronize()

取得最新的記錄檢視,並確認所有提交的專案。

等候所有先前提交的專案出現在記錄檔的已確認前置詞中,並強制重新整理已確認的前置詞。

TryAppend(TLogEntry)

嘗試在記錄檔的目前位置附加單一記錄專案。

TryAppendRange(IEnumerable<TLogEntry>)

嘗試在記錄檔的目前位置上,以不可部分完成的方式附加記錄專案範圍。

WriteAsync()

將暫止專案套用至主要複本。 必須封鎖/重試,直到成功為止。 不應該擲回例外狀況,但會將例外狀況記錄在 LastPrimaryIssue

適用於