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


Grain Класс

Определение

Абстрактный базовый класс для всех классов зерна.

public abstract class Grain : Orleans.Runtime.IAddressable
public abstract class Grain : Orleans.ILifecycleParticipant<Orleans.Runtime.IGrainLifecycle>, Orleans.Runtime.IAddressable
public abstract class Grain : Orleans.IGrainBase, Orleans.Runtime.IAddressable
type Grain = class
    interface IAddressable
type Grain = class
    interface IAddressable
    interface ILifecycleParticipant<IGrainLifecycle>
type Grain = class
    interface IGrainBase
    interface IAddressable
Public MustInherit Class Grain
Implements IAddressable
Public MustInherit Class Grain
Implements IAddressable, ILifecycleParticipant(Of IGrainLifecycle)
Public MustInherit Class Grain
Implements IAddressable, IGrainBase
Наследование
Grain
Производный
Реализации

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

Grain()

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

Grain(IGrainContext, IGrainRuntime)

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

Grain(IGrainIdentity, IGrainRuntime)

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

Свойства

GrainContext

Абстрактный базовый класс для всех классов зерна.

GrainFactory

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

GrainReference

Абстрактный базовый класс для всех классов зерна.

IdentityString

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

RuntimeIdentity

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

ServiceProvider

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

Методы

DeactivateOnIdle()

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

DelayDeactivation(TimeSpan)

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

GetLogger()

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

GetLogger(String)

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

GetReminder(String)

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

GetReminders()

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

GetStreamProvider(String)

Абстрактный базовый класс для всех классов зерна.

GetStreamProviders()

Абстрактный базовый класс для всех классов зерна.

MigrateOnIdle()

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

OnActivateAsync()

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

OnActivateAsync(CancellationToken)

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

OnDeactivateAsync()

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

OnDeactivateAsync(DeactivationReason, CancellationToken)

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

Participate(IGrainLifecycle)

Абстрактный базовый класс для всех классов зерна.

RegisterOrUpdateReminder(String, TimeSpan, TimeSpan)

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

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

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

UnregisterReminder(IGrainReminder)

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

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

IGrainBase.GrainContext

Абстрактный базовый класс для всех классов зерна.

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

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)

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

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