Compartilhar via


Grain Classe

Definição

A classe base abstrata para todas as classes de grãos.

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
Herança
Grain
Derivado
Implementações

Construtores

Grain()

Esse construtor nunca deve ser invocado. Nós o expõemos para que o código do cliente (subclasses de Grain) não precise adicionar um construtor. O código do cliente deve usar a propriedade GrainFactory para obter uma referência a um Grain.

Grain(IGrainContext, IGrainRuntime)

Os implementadores de grãos NÃO precisam expor esse construtor, mas podem optar por fazê-lo. Esse construtor é particularmente útil para testes de unidade em que o código de teste pode criar um Grain e substituir iGrainIdentity e IGrainRuntime por duplos de teste (mocks/stubs).

Grain(IGrainIdentity, IGrainRuntime)

Os implementadores de grãos NÃO precisam expor esse construtor, mas podem optar por fazê-lo. Esse construtor é particularmente útil para testes de unidade em que o código de teste pode criar um Grain e substituir iGrainIdentity e IGrainRuntime por duplos de teste (mocks/stubs).

Propriedades

GrainContext

A classe base abstrata para todas as classes de grãos.

GrainFactory

Obtém um objeto que pode ser usado para acessar outros grãos. Nulo se esse grão não estiver associado a um Runtime, como quando criado diretamente para teste de unidade.

GrainReference

A classe base abstrata para todas as classes de grãos.

IdentityString

Representação de cadeia de caracteres do SiloIdentity do grain, incluindo o tipo e a chave primária.

RuntimeIdentity

Um identificador exclusivo para o silo atual. Não há conteúdo semântico nessa cadeia de caracteres, mas pode ser útil para registrar em log.

ServiceProvider

Obtém o IServiceProvider gerenciado pelo runtime. Nulo se esse grão não estiver associado a um Runtime, como quando criado diretamente para teste de unidade.

Métodos

DeactivateOnIdle()

Desativar essa ativação do grão após a conclusão da chamada do método de grão atual. Essa chamada marcará essa ativação do grão atual a ser desativado e removido no final do método atual. A próxima chamada para esse grão resultará em uma ativação diferente a ser usada, o que normalmente significa que uma nova ativação será criada automaticamente pelo runtime.

DelayDeactivation(TimeSpan)

Atrase a desativação dessa ativação pelo menos pela duração do tempo especificada. Um valor timeSpan positivo significa "impedir GC dessa ativação para esse período de tempo". Um valor de timeSpan negativo significa "cancelar a configuração anterior da chamada DelayDeactivation e fazer com que essa ativação se comporte com base nas configurações regulares de Coleta de Lixo de Ativação". O método DeactivateOnIdle desfazeria/substituiria qualquer configuração atual de "keep alive", tornando esse grão imediatamente disponível para desativação.

GetLogger()

Retorna um objeto de agente que o código desse grão pode usar para rastreamento. O nome do agente será derivado do nome da classe grain.

GetLogger(String)

Retorna um objeto de agente que o código desse grão pode usar para rastreamento.

GetReminder(String)

Retorna um lembrete registrado anteriormente.

GetReminders()

Retorna uma lista de todos os lembretes registrados pelo grão.

GetStreamProvider(String)

A classe base abstrata para todas as classes de grãos.

GetStreamProviders()

A classe base abstrata para todas as classes de grãos.

MigrateOnIdle()

Inicia uma tentativa de migrar essa instância para outro local. A migração captura o RequestContextatual, disponibilizando-o para o diretor de posicionamento da ativação para que ele possa considerá-lo ao selecionar um novo local. A migração ocorrerá de forma assíncrona, quando nenhuma solicitação estiver em execução e não ocorrerá se o diretor de posicionamento da ativação não selecionar um local alternativo.

OnActivateAsync()

Esse método é chamado no final do processo de ativação de um grão. Ele é chamado antes de qualquer mensagem ter sido enviada para o grão. Para grãos com estado persistente declarado, esse método é chamado depois que a propriedade State é preenchida.

OnActivateAsync(CancellationToken)

Esse método é chamado no final do processo de ativação de um grão. Ele é chamado antes de qualquer mensagem ter sido enviada para o grão. Para grãos com estado persistente declarado, esse método é chamado depois que a propriedade State é preenchida.

OnDeactivateAsync()

Esse método é chamado no início do processo de desativação de um grão.

OnDeactivateAsync(DeactivationReason, CancellationToken)

Esse método é chamado no início do processo de desativação de um grão.

Participate(IGrainLifecycle)

A classe base abstrata para todas as classes de grãos.

RegisterOrUpdateReminder(String, TimeSpan, TimeSpan)

Registra um lembrete persistente e confiável para enviar notificações regulares (lembretes) para o grão. O grão deve implementar a interface Orleans.IRemindable e os lembretes para esse grão serão enviados para o método de retorno de chamada ReceiveReminder. Se o grão atual for desativado quando o temporizador for acionado, uma nova ativação desse grão será criada para receber esse lembrete. Se já existir um lembrete existente com o mesmo nome, esse lembrete será substituído com esse novo lembrete. Lembretes sempre serão recebidos por uma ativação desse grão, mesmo que existam várias ativações para esse grão.

RegisterTimer(Func<Object,Task>, Object, TimeSpan, TimeSpan)
Obsoleto.

Registra um temporizador para enviar retornos de chamada periódicos para esse grão.

UnregisterReminder(IGrainReminder)

Cancela o registro de um lembrete registrado anteriormente.

Implantações explícitas de interface

IGrainBase.GrainContext

A classe base abstrata para todas as classes de grãos.

Métodos de Extensão

DeactivateOnIdle(IGrainBase)

Desativar essa ativação de grãos após a conclusão da chamada do método de grão atual. Essa chamada marcará essa ativação do grão atual a ser desativado e removido no final do método atual. A próxima chamada para esse grão resultará em uma ativação diferente a ser usada, o que normalmente significa que uma nova ativação será criada automaticamente pelo runtime.

MigrateOnIdle(IGrainBase)

Inicia uma tentativa de migrar essa instância para outro local. A migração captura o RequestContextatual, disponibilizando-o para o diretor de posicionamento da ativação para que ele possa considerá-lo ao selecionar um novo local. A migração ocorrerá de forma assíncrona, quando nenhuma solicitação estiver em execução e não ocorrerá se o diretor de posicionamento da ativação não selecionar um local alternativo.

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

Cria um temporizador de grãos.

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

Cria um temporizador de grãos.

RegisterGrainTimer(IGrainBase, Func<Task>, GrainTimerCreationOptions)

A classe base abstrata para todas as classes de grãos.

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

Cria um temporizador de grãos.

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

Cria um temporizador de grãos.

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

Cria um temporizador de grãos.

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

A classe base abstrata para todas as classes de grãos.

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

Cria um temporizador de grãos.

AsReference(IAddressable, Type)

Retorna uma referência tipada ao grão fornecido.

AsReference<TGrainInterface>(IAddressable)

Retorna uma referência tipada ao grão fornecido.

BindGrainReference(IAddressable, IGrainFactory)

Associa a referência de grão ao IGrainFactoryfornecido.

Cast(IAddressable, Type)

Retorna uma referência tipada ao grão fornecido.

Cast<TGrainInterface>(IAddressable)

Retorna uma referência tipada ao grão fornecido.

GetGrainId(IAddressable)

Retorna a ID de grão correspondente ao grão fornecido.

GetPrimaryKey(IAddressable)

Retorna a representação Guid de uma chave primária de grãos.

GetPrimaryKey(IAddressable, String)

Retorna a representação Guid de uma chave primária de grãos.

GetPrimaryKeyLong(IAddressable)

Retorna a representação long de uma chave primária de grãos.

GetPrimaryKeyLong(IAddressable, String)

Retorna a representação long de uma chave primária de grãos.

GetPrimaryKeyString(IAddressable)

Retorna a chave primária string do grão.

IsPrimaryKeyBasedOnLong(IAddressable)

Retorna se parte da chave primária é do tipo long.

GetReminder(Grain, String)

Retorna um lembrete registrado anteriormente.

GetReminder(IGrainBase, String)

Retorna um lembrete registrado anteriormente.

GetReminders(Grain)

Retorna uma lista de todos os lembretes registrados pelo grão.

GetReminders(IGrainBase)

Retorna uma lista de todos os lembretes registrados pelo grão.

RegisterOrUpdateReminder(Grain, String, TimeSpan, TimeSpan)

Registra um lembrete persistente e confiável para enviar notificações regulares (lembretes) para o grão. O grão deve implementar a interface Orleans.IRemindable e os lembretes para esse grão serão enviados para o método de retorno de chamada ReceiveReminder. Se o grão atual for desativado quando o temporizador for acionado, uma nova ativação desse grão será criada para receber esse lembrete. Se já existir um lembrete existente com o mesmo nome, esse lembrete será substituído com esse novo lembrete. Lembretes sempre serão recebidos por uma ativação desse grão, mesmo que existam várias ativações para esse grão.

RegisterOrUpdateReminder(IGrainBase, String, TimeSpan, TimeSpan)

Registra um lembrete persistente e confiável para enviar notificações regulares (lembretes) para o grão. O grão deve implementar a interface Orleans.IRemindable e os lembretes para esse grão serão enviados para o método de retorno de chamada ReceiveReminder. Se o grão atual for desativado quando o temporizador for acionado, uma nova ativação desse grão será criada para receber esse lembrete. Se já existir um lembrete existente com o mesmo nome, esse lembrete será substituído com esse novo lembrete. Lembretes sempre serão recebidos por uma ativação desse grão, mesmo que existam várias ativações para esse grão.

UnregisterReminder(Grain, IGrainReminder)

Cancela o registro de um lembrete registrado anteriormente.

UnregisterReminder(IGrainBase, IGrainReminder)

Cancela o registro de um lembrete registrado anteriormente.

GetStreamProvider(Grain, String)

Obtém o provedor de fluxo com o nameespecificado.

GetStreamProvider(IGrainBase, String)

Obtém o provedor de fluxo com o nameespecificado.

GetLogger(Grain)

Retorna um objeto de agente que o código desse grão pode usar para rastreamento. O nome do agente será derivado do nome da classe grain.

GetLogger(Grain, String)

Retorna um objeto de agente que o código desse grão pode usar para rastreamento.

GetGrainStorage(Grain, IServiceProvider)

Adquira o provedor de armazenamento associado ao tipo de grão.

Aplica-se a