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()

不应调用此构造函数。 我们公开它,以便客户端代码(粒度的子类)不必添加构造函数。 客户端代码应使用 GrainFactory 属性获取对 Grain 的引用。

Grain(IGrainContext, IGrainRuntime)

粒度实现者不必公开此构造函数,但可以选择这样做。 此构造函数特别适用于单元测试,其中测试代码可以创建粒度并将 IGrainIdentity 和 IGrainRuntime 替换为测试双精度(模拟/存根)。

Grain(IGrainIdentity, IGrainRuntime)

粒度实现者不必公开此构造函数,但可以选择这样做。 此构造函数特别适用于单元测试,其中测试代码可以创建粒度并将 IGrainIdentity 和 IGrainRuntime 替换为测试双精度(模拟/存根)。

属性

GrainContext

所有粒度类的抽象基类。

GrainFactory

获取可用于访问其他粒度的对象。 如果此粒度未与运行时关联,则为 Null,例如直接为单元测试创建时。

GrainReference

所有粒度类的抽象基类。

IdentityString

粒度的 SiloIdentity 的字符串表示形式,包括类型和主键。

RuntimeIdentity

当前接收器的唯一标识符。 此字符串没有语义内容,但对日志记录可能很有用。

ServiceProvider

获取由运行时管理的 IServiceProvider。 如果此粒度未与运行时关联,则为 Null,例如直接为单元测试创建时。

方法

DeactivateOnIdle()

完成当前粒度方法调用后,停用粒度激活。 此调用将标记当前粒度的激活,以在当前方法末尾停用和删除。 下次调用此粒度将导致使用不同的激活,这通常意味着运行时会自动创建新的激活。

DelayDeactivation(TimeSpan)

延迟此激活至少在指定的持续时间内停用。 正 timeSpan 值表示“防止 GC 在此时间跨度内激活”。 负 timeSpan 值表示“取消 DelayDeactivation 调用的上一个设置,并根据常规激活垃圾回收设置进行此激活”。 DeactivateOnIdle 方法将撤消/重写任何当前“保持活动状态”设置,使此粒度立即可供停用。

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)

返回与提供的粒度对应的粒度 ID。

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)

获取与粒度类型关联的存储提供程序。

适用于