다음을 통해 공유


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을 테스트 더블(모의/스텁)으로 바꿀 수 있는 단위 테스트에 특히 유용합니다.

속성

GrainFactory

다른 조직에 액세스하는 데 사용할 수 있는 개체를 가져옵니다. 단위 테스트를 위해 직접 만든 경우와 같이 이 조직이 런타임과 연결되지 않은 경우 Null입니다.

GrainReference

모든 조직 클래스에 대한 추상 기본 클래스입니다.

IdentityString

형식 및 기본 키를 포함하여 조직의 사일로이엔티에 대한 문자열 표현입니다.

RuntimeIdentity

현재 사일로의 고유 식별자입니다. 이 문자열에 대한 의미 체계 콘텐츠는 없지만 로깅에 유용할 수 있습니다.

ServiceProvider

런타임에서 관리하는 IServiceProvider를 가져옵니다. 단위 테스트를 위해 직접 만든 경우와 같이 이 조직이 런타임과 연결되지 않은 경우 Null입니다.

메서드

DeactivateOnIdle()

현재 조직 메서드 호출이 완료된 후 조직의 이 활성화를 비활성화합니다. 이 호출은 현재 메서드의 끝에서 비활성화되고 제거될 현재 조직의 활성화를 표시합니다. 이 조직에 대한 다음 호출은 다른 활성화를 사용하게 되며, 이는 일반적으로 런타임에 의해 새 활성화가 자동으로 생성됨을 의미합니다.

DelayDeactivation(TimeSpan)

적어도 지정된 기간 동안 이 활성화의 비활성화를 지연합니다. 양수 timeSpan 값은 "해당 시간 범위에 대해 이 활성화의 GC 방지"를 의미합니다. 음수 timeSpan 값은 "DelayDeactivation 호출의 이전 설정을 취소하고 일반 정품 인증 가비지 수집 설정에 따라 이 활성화가 작동하도록 함"을 의미합니다. DeactivateOnIdle 메서드는 현재 "연결 유지" 설정을 실행 취소/재정의하여 이 조직을 즉시 비활성화할 수 있도록 합니다.

GetLogger()

이 조직의 코드가 추적에 사용할 수 있는 로거 개체를 반환합니다. 로거의 이름은 조직 클래스 이름에서 파생됩니다.

GetLogger(String)

이 조직의 코드가 추적에 사용할 수 있는 로거 개체를 반환합니다.

GetReminder(String)

이전에 등록된 미리 알림을 반환합니다.

GetReminders()

조직에서 등록한 모든 미리 알림 목록을 반환합니다.

GetStreamProvider(String)

모든 조직 클래스에 대한 추상 기본 클래스입니다.

GetStreamProviders()

모든 조직 클래스에 대한 추상 기본 클래스입니다.

MigrateOnIdle()

이 instance 다른 위치로 마이그레이션하려는 시도를 시작합니다. 마이그레이션은 현재 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)

이 instance 다른 위치로 마이그레이션하려는 시도를 시작합니다. 마이그레이션은 현재 RequestContext를 캡처하여 새 위치를 선택할 때 고려할 수 있도록 활성화의 배치 디렉터에서 사용할 수 있도록 합니다. 마이그레이션은 요청이 실행되지 않을 때 비동기적으로 발생하며 활성화의 배치 디렉터가 대체 위치를 선택하지 않으면 발생하지 않습니다.

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)

조직 유형과 연결된 스토리지 공급자를 가져옵니다.

적용 대상