Поделиться через


JournaledGrain<TGrainState,TEventBase> Класс

Определение

Базовый класс для объектов, согласованных с журналами, с использованием стандартной терминологии источника событий. Все операции безопасны при повторном входе.

public abstract class JournaledGrain<TGrainState,TEventBase> : Orleans.LogConsistency.LogConsistentGrainBase<TGrainState>, Orleans.LogConsistency.ILogConsistentGrain, Orleans.LogConsistency.ILogViewAdaptorHost<TGrainState,TEventBase>, Orleans.MultiCluster.ILogConsistencyProtocolParticipant where TGrainState : class, new() where TEventBase : class
public abstract class JournaledGrain<TGrainState,TEventBase> : Orleans.LogConsistency.LogConsistentGrain<TGrainState>, Orleans.IGrain, Orleans.LogConsistency.ILogViewAdaptorHost<TGrainState,TEventBase>, Orleans.MultiCluster.ILogConsistencyProtocolParticipant where TGrainState : class, new() where TEventBase : class
public abstract class JournaledGrain<TGrainState,TEventBase> : Orleans.EventSourcing.LogConsistentGrain<TGrainState>, Orleans.EventSourcing.ILogConsistencyProtocolParticipant, Orleans.EventSourcing.ILogViewAdaptorHost<TGrainState,TEventBase>, Orleans.IGrain where TGrainState : class, new() where TEventBase : class
type JournaledGrain<'GrainState, 'EventBase (requires 'GrainState : null and 'GrainState : (new : unit -> 'GrainState) and 'EventBase : null)> = class
    inherit LogConsistentGrainBase<'GrainState (requires 'GrainState : null and 'GrainState : (new : unit -> 'GrainState))>
    interface ILogConsistentGrain
    interface ILogConsistencyProtocolParticipant
    interface IGrain
    interface IAddressable
    interface ILogViewAdaptorHost<'GrainState, 'EventBase (requires 'GrainState : null and 'GrainState : (new : unit -> 'GrainState) and 'EventBase : null)>
    interface IConnectionIssueListener
type JournaledGrain<'GrainState, 'EventBase (requires 'GrainState : null and 'GrainState : (new : unit -> 'GrainState) and 'EventBase : null)> = class
    inherit LogConsistentGrain<'GrainState (requires 'GrainState : null and 'GrainState : (new : unit -> 'GrainState))>
    interface ILogConsistencyProtocolParticipant
    interface IGrain
    interface IAddressable
    interface ILogViewAdaptorHost<'GrainState, 'EventBase (requires 'GrainState : null and 'GrainState : (new : unit -> 'GrainState) and 'EventBase : null)>
    interface IConnectionIssueListener
Public MustInherit Class JournaledGrain(Of TGrainState, TEventBase)
Inherits LogConsistentGrainBase(Of TGrainState)
Implements ILogConsistencyProtocolParticipant, ILogConsistentGrain, ILogViewAdaptorHost(Of TGrainState, TEventBase)
Public MustInherit Class JournaledGrain(Of TGrainState, TEventBase)
Inherits LogConsistentGrain(Of TGrainState)
Implements IGrain, ILogConsistencyProtocolParticipant, ILogViewAdaptorHost(Of TGrainState, TEventBase)

Параметры типа

TGrainState

Тип состояния grain, т. е. агрегированное представление журнала событий.

TEventBase

Общий базовый класс для событий

Наследование
JournaledGrain<TGrainState,TEventBase>
Наследование
LogConsistentGrain<TGrainState>
JournaledGrain<TGrainState,TEventBase>
Наследование
LogConsistentGrain<TGrainState>
JournaledGrain<TGrainState,TEventBase>
Производный
Реализации

Конструкторы

JournaledGrain<TGrainState,TEventBase>()

Инициализирует новый экземпляр класса JournaledGrain<TGrainState,TEventBase>.

JournaledGrain<TGrainState,TEventBase>(IGrainIdentity, IGrainRuntime)

Этот конструктор особенно полезен для модульного тестирования, где тестовый код может создать grain и заменить IGrainIdentity, IGrainRuntime и State на тестовые двойники (макеты или заглушки).

Свойства

DefaultAdaptorFactory

Если поставщик согласованности журналов не указан, сохраните состояние версий с помощью поставщика хранилища по умолчанию.

GrainFactory

Возвращает объект , который может использоваться для доступа к другим объектам grain. Значение NULL, если эта грань не связана со средой выполнения, например при создании непосредственно для модульного тестирования.

(Унаследовано от Grain)
GrainReference

Базовый класс для объектов, согласованных с журналами, с использованием стандартной терминологии источника событий. Все операции безопасны при повторном входе.

(Унаследовано от Grain)
IdentityString

Строковое представление SiloIdentity grain, включая тип и первичный ключ.

(Унаследовано от Grain)
RuntimeIdentity

Уникальный идентификатор текущего объекта silo. Эта строка не содержит семантического содержимого, но она может быть полезна для ведения журнала.

(Унаследовано от Grain)
ServiceProvider

Возвращает IServiceProvider, управляемый средой выполнения. Значение NULL, если эта грань не связана со средой выполнения, например при создании непосредственно для модульного тестирования.

(Унаследовано от Grain)
State

Возвращает текущее подтвержденное состояние. Включает только подтвержденные события.

TentativeState

Возвращает текущее предварительное состояние. Включает как подтвержденные, так и неподтвержденные события.

UnconfirmedEvents

Возвращает текущую очередь неподтвержденных событий.

UnresolvedConnectionIssues

Возвращает список всех неразрешенных в настоящее время проблем с подключением.

Version

Возвращает версию текущего подтвержденного состояния. Равно общему количеству подтвержденных событий.

Методы

ConfirmEvents()

Ожидает подтверждения всех ранее созданных событий.

дождаться этого после вызова одного или нескольких событий, чтобы обеспечить сохранение событий перед продолжением, или для обеспечения строгой согласованности (линеализируемости) даже при наличии нескольких экземпляров этого объекта grain.

DeactivateOnIdle()

Отключите эту активацию grain после завершения вызова текущего метода grain. Этот вызов помечает эту активацию текущего элемента grain, который будет деактивирован и удален в конце текущего метода. При следующем вызове этого объекта grain будет использоваться другая активация, что обычно означает, что новая активация будет автоматически создана средой выполнения.

(Унаследовано от Grain)
DelayDeactivation(TimeSpan)

Отложите деактивацию этой активации по крайней мере на указанный период времени. Положительное timeSpan значение означает "запретить сборку сборки этой активации для этого интервала времени". Отрицательное timeSpan значение означает "отмените предыдущий параметр вызова DelayDeactivation и сделайте такую активацию в соответствии с обычными параметрами сборки мусора активации". Метод DeactivateOnIdle отменяет или переопределяет любой текущий параметр "поддерживать работоспособность", что делает этот элемент сразу же доступным для деактивации.

(Унаследовано от Grain)
DisableStatsCollection()

Базовый класс для объектов, согласованных с журналами, с использованием стандартной терминологии источника событий. Все операции безопасны при повторном входе.

EnableStatsCollection()

Базовый класс для объектов, согласованных с журналами, с использованием стандартной терминологии источника событий. Все операции безопасны при повторном входе.

GetLogger()

Возвращает объект средства ведения журнала, который этот код может использовать для трассировки. Имя средства ведения журнала будет производным от имени класса grain.

(Унаследовано от Grain)
GetLogger(String)

Возвращает объект средства ведения журнала, который этот код может использовать для трассировки.

(Унаследовано от Grain)
GetReminder(String)

Возвращает ранее зарегистрированное напоминание.

(Унаследовано от Grain)
GetReminders()

Возвращает список всех напоминаний, зарегистрированных элементом grain.

(Унаследовано от Grain)
GetStats()

Базовый класс для объектов, согласованных с журналами, с использованием стандартной терминологии источника событий. Все операции безопасны при повторном входе.

GetStreamProvider(String)

Базовый класс для объектов, согласованных с журналами, с использованием стандартной терминологии источника событий. Все операции безопасны при повторном входе.

(Унаследовано от Grain)
GetStreamProviders()

Базовый класс для объектов, согласованных с журналами, с использованием стандартной терминологии источника событий. Все операции безопасны при повторном входе.

(Унаследовано от Grain)
InstallAdaptor(ILogViewAdaptorFactory, Object, String, IGrainStorage, ILogConsistencyProtocolServices)

Вызывается сразу после создания grain для установки адаптера. Поставщик согласованности журналов содержит метод фабрики, который создает адаптер с выбранными типами для этого объекта grain.

InstallAdaptor(ILogViewAdaptorFactory, Object, String, IGrainStorage, ILogConsistencyProtocolServices)

Вызывается сразу после создания grain для установки адаптера. Поставщик согласованности журналов содержит метод фабрики, который создает адаптер с выбранными типами для этого объекта grain.

MigrateOnIdle()

Запускает попытку переноса этого экземпляра в другое расположение. Миграция фиксирует текущий RequestContextобъект , делая его доступным для директора размещения активации, чтобы он смог рассмотреть его при выборе нового расположения. Миграция выполняется асинхронно, когда запросы не выполняются, и не выполняется, если директор размещения активации не выберет альтернативное расположение.

(Унаследовано от Grain)
OnActivateAsync()

По умолчанию после активации записаемое в журнале зерно ожидает, пока не загрузит последнее представление из хранилища. Подклассы могут переопределить это поведение и пропустить ожидание, если это необходимо.

OnActivateAsync()

Этот метод вызывается в конце процесса активации grain. Он вызывается перед отправкой каких-либо сообщений в объект grain. Для объектов grain с объявленным постоянным состоянием этот метод вызывается после заполнения свойства State.

(Унаследовано от Grain)
OnActivateAsync(CancellationToken)

По умолчанию после активации записаемое в журнале зерно ожидает, пока не загрузит последнее представление из хранилища. Подклассы могут переопределить это поведение и пропустить ожидание, если это необходимо.

OnActivateAsync(CancellationToken)

Этот метод вызывается в конце процесса активации grain. Он вызывается перед отправкой каких-либо сообщений в объект grain. Для объектов grain с объявленным постоянным состоянием этот метод вызывается после заполнения свойства State.

(Унаследовано от Grain)
OnConnectionIssue(ConnectionIssue)

Вызывается, когда базовый протокол сохраняемости или протокол репликации испытывает какие-либо проблемы с подключением.

Переопределите его, чтобы отслеживать работоспособность протокола согласованности журналов и (или) настраивать задержки повторных попыток. Все создаваемые исключения перехватываются и регистрируются в ILogViewAdaptorFactory.

OnConnectionIssue(ConnectionIssue)

Вызывается, когда базовый протокол сохраняемости или протокол репликации испытывает какие-либо проблемы с подключением.

Переопределите его, чтобы отслеживать работоспособность протокола согласованности журналов и (или) настраивать задержки повторных попыток. Все создаваемые исключения перехватываются и регистрируются в ILogConsistencyProvider.

OnConnectionIssueResolved(ConnectionIssue)

Вызывается при устранении ранее сообщаемой проблемы с подключением.

Переопределите его, чтобы отслеживать работоспособность протокола согласованности журналов. Все создаваемые исключения перехватываются и регистрируются в ILogConsistencyProvider.

OnConnectionIssueResolved(ConnectionIssue)

Вызывается при устранении ранее сообщаемой проблемы с подключением.

Переопределите его, чтобы отслеживать работоспособность протокола согласованности журналов. Все создаваемые исключения перехватываются и регистрируются в ILogViewAdaptorFactory.

OnDeactivateAsync()

Этот метод вызывается в начале процесса деактивации grain.

(Унаследовано от Grain)
OnDeactivateAsync(DeactivationReason, CancellationToken)

Этот метод вызывается в начале процесса деактивации grain.

(Унаследовано от Grain)
OnStateChanged()

Вызывается после изменения подтвержденного состояния (т. е. номер подтвержденной версии больше).

Переопределите его, чтобы реагировать на изменения подтвержденного состояния.

OnTentativeStateChanged()

Вызывается всякий раз, когда предварительное состояние могло измениться из-за локальных или удаленных событий.

Переопределите его, чтобы реагировать на изменения состояния.

Participate(IGrainLifecycle)

Базовый класс для объектов, согласованных с журналами, с использованием стандартной терминологии источника событий. Все операции безопасны при повторном входе.

(Унаследовано от Grain)
Participate(IGrainLifecycle)

Базовый класс для объектов, согласованных с журналами, с использованием стандартной терминологии источника событий. Все операции безопасны при повторном входе.

(Унаследовано от LogConsistentGrain<TView>)
Participate(IGrainLifecycle)

Базовый класс для объектов, согласованных с журналами, с использованием стандартной терминологии источника событий. Все операции безопасны при повторном входе.

(Унаследовано от LogConsistentGrain<TView>)
RaiseConditionalEvent<TEvent>(TEvent)

Создайте событие условно. Выполняется успешно, только если нет конфликтов, т. е. другие события тем временем не были вызваны.

RaiseConditionalEvents<TEvent>(IEnumerable<TEvent>)

Условное создание нескольких событий в виде атомарной последовательности. Выполняется успешно, только если нет конфликтов, т. е. другие события тем временем не были вызваны.

RaiseEvent<TEvent>(TEvent)

Вызывает событие.

RaiseEvents<TEvent>(IEnumerable<TEvent>)

Вызов нескольких событий в виде атомарной последовательности.

RefreshNow()

Извлекает последнее состояние и подтверждает все ранее созданные события. Фактически это обеспечивает синхронизацию с глобальным состоянием.

Дождитесь этого перед чтением состояния, чтобы обеспечить строжную согласованность (линеаризируемость) даже при наличии нескольких экземпляров этого элемента grain.

RegisterOrUpdateReminder(String, TimeSpan, TimeSpan)

Регистрирует постоянное, надежное напоминание для отправки регулярных уведомлений (напоминаний) в объект grain. В объекте grain должен быть реализован Orleans.IRemindable интерфейс , а напоминания об этом объекте будут отправляться методу обратного ReceiveReminder вызова. Если текущее зерно отключается при срабатывании таймера, будет создана новая активация этого элемента для получения этого напоминания. Если существующее напоминание с таким же именем уже существует, это напоминание будет перезаписан этим новым напоминанием. Напоминания всегда будут получаться при одной активации этого элемента, даже если для этого элемента есть несколько активаций.

(Унаследовано от Grain)
RegisterTimer(Func<Object,Task>, Object, TimeSpan, TimeSpan)

Регистрирует таймер для отправки периодических обратных вызовов этой области.

(Унаследовано от Grain)
RetrieveConfirmedEvents(Int32, Int32)

Извлекает сегмент подтвержденной последовательности событий, возможно, из хранилища. Вызывает исключение NotSupportedException , если события недоступны для чтения. Доступность событий и время зависит от используемых поставщиков и способа их настройки.

TransitionState(TGrainState, TEventBase)

Определяет способ применения событий к состоянию. Если он не переопределен в подклассе, он вызывает динамическую функцию Apply для состояния с событием в качестве параметра. Все исключения, создаваемые этим методом, перехватываются и регистрируются поставщиком представления журнала.

Переопределите его, чтобы настроить способ перехода состояния для заданного события.

UnregisterReminder(IGrainReminder)

Отменяет регистрацию ранее зарегистрированного напоминания.

(Унаследовано от Grain)

Явные реализации интерфейса

IConnectionIssueListener.OnConnectionIssue(ConnectionIssue)

вызывается адаптером при проблемах с подключением.

IConnectionIssueListener.OnConnectionIssue(ConnectionIssue)

вызывается адаптером при проблемах с подключением.

IConnectionIssueListener.OnConnectionIssueResolved(ConnectionIssue)

Вызывается адаптером при устранении проблемы с подключением.

IConnectionIssueListener.OnConnectionIssueResolved(ConnectionIssue)

вызывается адаптером при устранении проблемы с подключением.

IGrainBase.GrainContext

Базовый класс для объектов, согласованных с журналами, с использованием стандартной терминологии источника событий. Все операции безопасны при повторном входе.

(Унаследовано от Grain)
ILogConsistencyProtocolParticipant.DeactivateProtocolParticipant()

Уведомление адаптера представления журнала о деактивации

ILogConsistencyProtocolParticipant.DeactivateProtocolParticipant()

Уведомление адаптера представления журнала о деактивации

ILogConsistencyProtocolParticipant.OnMultiClusterConfigurationChange(MultiClusterConfiguration)

Получите изменение конфигурации и передайте в адаптер представления журнала.

ILogConsistencyProtocolParticipant.OnProtocolMessageReceived(ILogConsistencyProtocolMessage)

Получение сообщения протокола из других кластеров, переданное в адаптер представления журнала.

ILogConsistencyProtocolParticipant.PostActivateProtocolParticipant()

Уведомлять адаптер представления журнала об активации (вызывается после OnActivate на уровне пользователя)

ILogConsistencyProtocolParticipant.PostActivateProtocolParticipant()

Уведомлять адаптер представления журнала об активации (вызывается после OnActivate на уровне пользователя)

ILogConsistencyProtocolParticipant.PreActivateProtocolParticipant()

Уведомлять адаптер представления журнала об активации (вызывается до onActivate на уровне пользователя)

ILogConsistencyProtocolParticipant.PreActivateProtocolParticipant()

Уведомлять адаптер представления журнала об активации (вызывается до onActivate на уровне пользователя)

ILogConsistentGrain.DefaultAdaptorFactory

Если поставщик согласованности журналов не указан, сохраните состояние версий с помощью поставщика хранилища по умолчанию.

ILogConsistentGrain.InstallAdaptor(ILogViewAdaptorFactory, Object, String, IStorageProvider, ILogConsistencyProtocolServices)

Вызывается сразу после создания grain для установки адаптера. Поставщик согласованности журналов содержит метод фабрики, который создает адаптер с выбранными типами для этого объекта grain.

ILogViewAdaptorHost<TGrainState,TEventBase>.OnViewChanged(Boolean, Boolean)

Вызывается адаптером при изменении состояния.

ILogViewAdaptorHost<TGrainState,TEventBase>.OnViewChanged(Boolean, Boolean)

вызывается адаптером при изменении состояния.

ILogViewAdaptorHost<TGrainState,TEventBase>.UpdateView(TGrainState, TEventBase)

Вызывается адаптером для обновления представления при добавлении записей.

ILogViewAdaptorHost<TGrainState,TEventBase>.UpdateView(TGrainState, TEventBase)

вызывается адаптером для обновления представления при добавлении записей.

Методы расширения

DeactivateOnIdle(IGrainBase)

Отключите эту активацию grain после завершения вызова текущего метода grain. Этот вызов помечает эту активацию текущего элемента grain, который будет деактивирован и удален в конце текущего метода. При следующем вызове этого объекта grain будет использоваться другая активация, что обычно означает, что новая активация будет автоматически создана средой выполнения.

MigrateOnIdle(IGrainBase)

Запускает попытку переноса этого экземпляра в другое расположение. Миграция фиксирует текущий RequestContextобъект , делая его доступным для директора размещения активации, чтобы он смог рассмотреть его при выборе нового расположения. Миграция выполняется асинхронно, когда запросы не выполняются, и не выполняется, если директор размещения активации не выберет альтернативное расположение.

AsReference(IAddressable, Type)

Возвращает типизированные ссылки на предоставленный объект grain.

AsReference<TGrainInterface>(IAddressable)

Возвращает типизированные ссылки на предоставленный объект grain.

BindGrainReference(IAddressable, IGrainFactory)

Привязывает ссылку grain к предоставленному объекту IGrainFactory.

Cast(IAddressable, Type)

Возвращает типизированные ссылки на предоставленный объект grain.

Cast<TGrainInterface>(IAddressable)

Возвращает типизированные ссылки на предоставленный объект grain.

GetGrainId(IAddressable)

Возвращает идентификатор grain, соответствующий указанному объекту grain.

GetGrainIdentity(IGrain)

Базовый класс для объектов, согласованных с журналами, с использованием стандартной терминологии источника событий. Все операции безопасны при повторном входе.

GetPrimaryKey(IGrain)

Базовый класс для объектов, согласованных с журналами, с использованием стандартной терминологии источника событий. Все операции безопасны при повторном входе.

GetPrimaryKey(IGrain, String)

Базовый класс для объектов, согласованных с журналами, с использованием стандартной терминологии источника событий. Все операции безопасны при повторном входе.

GetPrimaryKey(IAddressable)

Guid Возвращает представление первичного ключа grain.

GetPrimaryKey(IAddressable, String)

Guid Возвращает представление первичного ключа grain.

GetPrimaryKeyLong(IGrain)

Базовый класс для объектов, согласованных с журналами, с использованием стандартной терминологии источника событий. Все операции безопасны при повторном входе.

GetPrimaryKeyLong(IGrain, String)

Базовый класс для объектов, согласованных с журналами, с использованием стандартной терминологии источника событий. Все операции безопасны при повторном входе.

GetPrimaryKeyLong(IAddressable)

long Возвращает представление первичного ключа grain.

GetPrimaryKeyLong(IAddressable, String)

long Возвращает представление первичного ключа grain.

GetPrimaryKeyString(IAddressable)

Возвращает первичный string ключ объекта grain.

IsPrimaryKeyBasedOnLong(IAddressable)

Возвращает значение, указывающее, имеет ли часть первичного ключа тип long.

GetReminder(Grain, String)

Возвращает ранее зарегистрированное напоминание.

GetReminder(IGrainBase, String)

Возвращает ранее зарегистрированное напоминание.

GetReminders(Grain)

Возвращает список всех напоминаний, зарегистрированных элементом grain.

GetReminders(IGrainBase)

Возвращает список всех напоминаний, зарегистрированных элементом grain.

RegisterOrUpdateReminder(Grain, String, TimeSpan, TimeSpan)

Регистрирует постоянное, надежное напоминание для отправки регулярных уведомлений (напоминаний) в объект grain. В объекте grain должен быть реализован Orleans.IRemindable интерфейс , а напоминания об этом объекте будут отправляться методу обратного ReceiveReminder вызова. Если текущее зерно отключается при срабатывании таймера, будет создана новая активация этого элемента для получения этого напоминания. Если существующее напоминание с таким же именем уже существует, это напоминание будет перезаписан этим новым напоминанием. Напоминания всегда будут получаться при одной активации этого элемента, даже если для этого элемента есть несколько активаций.

RegisterOrUpdateReminder(IGrainBase, String, TimeSpan, TimeSpan)

Регистрирует постоянное, надежное напоминание для отправки регулярных уведомлений (напоминаний) в объект grain. В объекте grain должен быть реализован Orleans.IRemindable интерфейс , а напоминания об этом объекте будут отправляться методу обратного ReceiveReminder вызова. Если текущее зерно отключается при срабатывании таймера, будет создана новая активация этого элемента для получения этого напоминания. Если существующее напоминание с таким же именем уже существует, это напоминание будет перезаписан этим новым напоминанием. Напоминания всегда будут получаться при одной активации этого элемента, даже если для этого элемента есть несколько активаций.

UnregisterReminder(Grain, IGrainReminder)

Отменяет регистрацию ранее зарегистрированного напоминания.

UnregisterReminder(IGrainBase, IGrainReminder)

Отменяет регистрацию ранее зарегистрированного напоминания.

GetStreamProvider(Grain, String)

Возвращает поставщик потока с указанным name.

GetStreamProvider(IGrainBase, String)

Возвращает поставщик потока с указанным name.

GetLogger(Grain)

Возвращает объект средства ведения журнала, который этот код может использовать для трассировки. Имя средства ведения журнала будет производным от имени класса grain.

GetLogger(Grain, String)

Возвращает объект средства ведения журнала, который этот код может использовать для трассировки.

GetGrainStorage(Grain, IServiceProvider)

Получение поставщика хранилища, связанного с типом grain.

Применяется к