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


Grain<TGrainState> Класс

Определение

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

public class Grain<TGrainState> : Orleans.Grain where TGrainState : new()
public class Grain<TGrainState> : Orleans.Grain
type Grain<'GrainState (requires 'GrainState : (new : unit -> 'GrainState))> = class
    inherit Grain
type Grain<'GrainState> = class
    inherit Grain
Public Class Grain(Of TGrainState)
Inherits Grain

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

TGrainState

Класс объекта постоянного состояния

Наследование
Grain<TGrainState>

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

Grain<TGrainState>()

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

Grain<TGrainState>(IGrainIdentity, IGrainRuntime, IStorage<TGrainState>)

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

Grain<TGrainState>(IGrainIdentity, IGrainRuntime, TGrainState, IStorage)

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

Grain<TGrainState>(IStorage<TGrainState>)

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

Свойства

GrainContext

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

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

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

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

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

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

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

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

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

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

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

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

Возвращает или задает состояние зерна.

Методы

ClearStateAsync()

Очищает текущие данные состояния зерна из резервного хранилища.

DeactivateOnIdle()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Participate(IGrainLifecycle)

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

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

Считывает состояние зерна из резервного хранилища, обновляя State.

RegisterOrUpdateReminder(String, TimeSpan, TimeSpan)

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

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

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

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

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

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

Запись текущих данных состояния зерна в резервное хранилище.

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

IGrainBase.GrainContext

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

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

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

DeactivateOnIdle(IGrainBase)

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

MigrateOnIdle(IGrainBase)

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

RegisterGrainTimer(IGrainBase, Func<CancellationToken,Task>, GrainTimerCreationOptions)

Создает таймер зерна.

RegisterGrainTimer(IGrainBase, Func<CancellationToken,Task>, TimeSpan, TimeSpan)

Создает таймер зерна.

RegisterGrainTimer(IGrainBase, Func<Task>, GrainTimerCreationOptions)

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

RegisterGrainTimer(IGrainBase, Func<Task>, TimeSpan, TimeSpan)

Создает таймер зерна.

RegisterGrainTimer<TState>(IGrainBase, Func<TState,CancellationToken,Task>, TState, GrainTimerCreationOptions)

Создает таймер зерна.

RegisterGrainTimer<TState>(IGrainBase, Func<TState,CancellationToken,Task>, TState, TimeSpan, TimeSpan)

Создает таймер зерна.

RegisterGrainTimer<TState>(IGrainBase, Func<TState,Task>, TState, GrainTimerCreationOptions)

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

RegisterGrainTimer<TState>(IGrainBase, Func<TState,Task>, TState, TimeSpan, TimeSpan)

Создает таймер зерна.

AsReference(IAddressable, Type)

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

AsReference<TGrainInterface>(IAddressable)

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

BindGrainReference(IAddressable, IGrainFactory)

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

Cast(IAddressable, Type)

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

Cast<TGrainInterface>(IAddressable)

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

GetGrainId(IAddressable)

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

GetPrimaryKey(IAddressable)

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

GetPrimaryKey(IAddressable, String)

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

GetPrimaryKeyLong(IAddressable)

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

GetPrimaryKeyLong(IAddressable, String)

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

GetPrimaryKeyString(IAddressable)

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

IsPrimaryKeyBasedOnLong(IAddressable)

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

GetReminder(Grain, String)

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

GetReminder(IGrainBase, String)

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

GetReminders(Grain)

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

GetReminders(IGrainBase)

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

RegisterOrUpdateReminder(Grain, String, TimeSpan, TimeSpan)

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

RegisterOrUpdateReminder(IGrainBase, String, TimeSpan, TimeSpan)

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

UnregisterReminder(Grain, IGrainReminder)

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

UnregisterReminder(IGrainBase, IGrainReminder)

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

GetStreamProvider(Grain, String)

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

GetStreamProvider(IGrainBase, String)

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

GetLogger(Grain)

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

GetLogger(Grain, String)

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

GetGrainStorage(Grain, IServiceProvider)

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

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