actors

package
v1.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 7, 2022 License: Apache-2.0 Imports: 36 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrActorDisposed = errors.New("actor is already disposed")

ErrActorDisposed is the error when runtime tries to hold the lock of the disposed actor.

View Source
var ErrDaprResponseHeader = errors.New("error indicated via actor header response")
View Source
var ErrMaxStackDepthExceeded = errors.New("Maximum stack depth exceeded")

Functions

func ValidateHostEnvironment added in v0.11.2

func ValidateHostEnvironment(mTLSEnabled bool, mode modes.DaprMode, namespace string) error

ValidateHostEnvironment validates that actors can be initialized properly given a set of parameters And the mode the runtime is operating in.

Types

type ActiveActorsCount added in v0.5.0

type ActiveActorsCount struct {
	Type  string `json:"type"`
	Count int    `json:"count"`
}

ActiveActorsCount contain actorType and count of actors each type has.

type ActorHostedRequest

type ActorHostedRequest struct {
	ActorID   string `json:"actorId"`
	ActorType string `json:"actorType"`
}

ActorHostedRequest is the request object for checking if an actor is hosted on this instance.

type ActorLock added in v1.2.0

type ActorLock struct {
	// contains filtered or unexported fields
}

func NewActorLock added in v1.2.0

func NewActorLock(maxStackDepth int32) ActorLock

func (*ActorLock) Lock added in v1.2.0

func (a *ActorLock) Lock(requestID *string) error

func (*ActorLock) Unlock added in v1.2.0

func (a *ActorLock) Unlock()

type ActorMetadata added in v1.3.0

type ActorMetadata struct {
	ID                string                 `json:"id"`
	RemindersMetadata ActorRemindersMetadata `json:"actorRemindersMetadata"`
	Etag              *string                `json:"-"`
}

ActorMetadata represents information about the actor type.

type ActorRemindersMetadata added in v1.3.0

type ActorRemindersMetadata struct {
	PartitionCount int `json:"partitionCount"`
	// contains filtered or unexported fields
}

ActorRemindersMetadata represents information about actor's reminders.

type Actors

type Actors interface {
	Call(ctx context.Context, req *invokev1.InvokeMethodRequest) (*invokev1.InvokeMethodResponse, error)
	Init() error
	Stop()
	GetState(ctx context.Context, req *GetStateRequest) (*StateResponse, error)
	TransactionalStateOperation(ctx context.Context, req *TransactionalRequest) error
	GetReminder(ctx context.Context, req *GetReminderRequest) (*Reminder, error)
	CreateReminder(ctx context.Context, req *CreateReminderRequest) error
	DeleteReminder(ctx context.Context, req *DeleteReminderRequest) error
	RenameReminder(ctx context.Context, req *RenameReminderRequest) error
	CreateTimer(ctx context.Context, req *CreateTimerRequest) error
	DeleteTimer(ctx context.Context, req *DeleteTimerRequest) error
	IsActorHosted(ctx context.Context, req *ActorHostedRequest) bool
	GetActiveActorsCount(ctx context.Context) []ActiveActorsCount
}

Actors allow calling into virtual actors as well as actor state management.

func NewActors

func NewActors(
	stateStore state.Store,
	appChannel channel.AppChannel,
	grpcConnectionFn func(ctx context.Context, address, id string, namespace string, skipTLS, recreateIfExists, enableSSL bool, customOpts ...grpc.DialOption) (*grpc.ClientConn, func(), error),
	config Config,
	certChain *dapr_credentials.CertChain,
	tracingSpec configuration.TracingSpec,
	features []configuration.FeatureSpec,
	resiliency resiliency.Provider,
	stateStoreName string,
) Actors

NewActors create a new actors runtime with given config.

type Config

type Config struct {
	HostAddress                   string
	AppID                         string
	PlacementAddresses            []string
	HostedActorTypes              []string
	Port                          int
	HeartbeatInterval             time.Duration
	ActorDeactivationScanInterval time.Duration
	ActorIdleTimeout              time.Duration
	DrainOngoingCallTimeout       time.Duration
	DrainRebalancedActors         bool
	Namespace                     string
	Reentrancy                    app_config.ReentrancyConfig
	RemindersStoragePartitions    int
	EntityConfigs                 map[string]EntityConfig
}

Config is the actor runtime configuration.

func NewConfig

func NewConfig(hostAddress, appID string, placementAddresses []string, port int, namespace string, appConfig app_config.ApplicationConfig) Config

NewConfig returns the actor runtime configuration.

func (*Config) GetDrainOngoingTimeoutForType added in v1.7.0

func (c *Config) GetDrainOngoingTimeoutForType(actorType string) time.Duration

func (*Config) GetDrainRebalancedActorsForType added in v1.7.0

func (c *Config) GetDrainRebalancedActorsForType(actorType string) bool

func (*Config) GetIdleTimeoutForType added in v1.7.0

func (c *Config) GetIdleTimeoutForType(actorType string) time.Duration

func (*Config) GetReentrancyForType added in v1.7.0

func (c *Config) GetReentrancyForType(actorType string) app_config.ReentrancyConfig

func (*Config) GetRemindersPartitionCountForType added in v1.7.0

func (c *Config) GetRemindersPartitionCountForType(actorType string) int

type CreateReminderRequest

type CreateReminderRequest struct {
	Name      string
	ActorType string
	ActorID   string
	Data      interface{} `json:"data"`
	DueTime   string      `json:"dueTime"`
	Period    string      `json:"period"`
	TTL       string      `json:"ttl"`
}

CreateReminderRequest is the request object to create a new reminder.

type CreateTimerRequest

type CreateTimerRequest struct {
	Name      string
	ActorType string
	ActorID   string
	DueTime   string      `json:"dueTime"`
	Period    string      `json:"period"`
	TTL       string      `json:"ttl"`
	Callback  string      `json:"callback"`
	Data      interface{} `json:"data"`
}

CreateTimerRequest is the request object to create a new timer.

type DeleteReminderRequest

type DeleteReminderRequest struct {
	Name      string
	ActorType string
	ActorID   string
}

DeleteReminderRequest is the request object for deleting a reminder.

type DeleteStateRequest

type DeleteStateRequest struct {
	ActorID   string `json:"actorId"`
	ActorType string `json:"actorType"`
	Key       string `json:"key"`
}

DeleteStateRequest is the request object for deleting an actor state.

type DeleteTimerRequest

type DeleteTimerRequest struct {
	Name      string
	ActorType string
	ActorID   string
}

DeleteTimerRequest is a request object for deleting a timer.

type EntityConfig added in v1.7.0

type EntityConfig struct {
	Entities                   []string
	ActorIdleTimeout           time.Duration
	DrainOngoingCallTimeout    time.Duration
	DrainRebalancedActors      bool
	ReentrancyConfig           app_config.ReentrancyConfig
	RemindersStoragePartitions int
}

Remap of app_config.EntityConfig but with more useful types for actors.go.

type GetReminderRequest

type GetReminderRequest struct {
	Name      string
	ActorType string
	ActorID   string
}

GetReminderRequest is the request object to get an existing reminder.

type GetStateRequest

type GetStateRequest struct {
	ActorID   string `json:"actorId"`
	ActorType string `json:"actorType"`
	Key       string `json:"key"`
}

GetStateRequest is the request object for getting actor state.

type OperationType

type OperationType string

OperationType describes a CRUD operation performed against a state store.

const Delete OperationType = "delete"

Delete is a delete operation.

const Upsert OperationType = "upsert"

Upsert is an update or create operation.

type Reminder

type Reminder struct {
	ActorID        string      `json:"actorID,omitempty"`
	ActorType      string      `json:"actorType,omitempty"`
	Name           string      `json:"name,omitempty"`
	Data           interface{} `json:"data"`
	Period         string      `json:"period"`
	DueTime        string      `json:"dueTime"`
	RegisteredTime string      `json:"registeredTime,omitempty"`
	ExpirationTime string      `json:"expirationTime,omitempty"`
}

Reminder represents a persisted reminder for a unique actor.

type ReminderResponse

type ReminderResponse struct {
	Data    interface{} `json:"data"`
	DueTime string      `json:"dueTime"`
	Period  string      `json:"period"`
}

ReminderResponse is the payload that is sent to an Actor SDK API for execution.

type ReminderTrack

type ReminderTrack struct {
	LastFiredTime  string `json:"lastFiredTime"`
	RepetitionLeft int    `json:"repetitionLeft"`
}

ReminderTrack is a persisted object that keeps track of the last time a reminder fired.

type RenameReminderRequest added in v1.6.0

type RenameReminderRequest struct {
	OldName   string
	ActorType string
	ActorID   string
	NewName   string
}

RenameReminderRequest is the request object for rename a reminder.

type SaveStateRequest

type SaveStateRequest struct {
	ActorID   string      `json:"actorId"`
	ActorType string      `json:"actorType"`
	Key       string      `json:"key"`
	Value     interface{} `json:"value"`
}

SaveStateRequest is the request object for saving an actor state.

type StateResponse

type StateResponse struct {
	Data []byte `json:"data"`
}

StateResponse is the response returned from getting an actor state.

type TimerResponse

type TimerResponse struct {
	Callback string      `json:"callback"`
	Data     interface{} `json:"data"`
	DueTime  string      `json:"dueTime"`
	Period   string      `json:"period"`
}

TimerResponse is the response object send to an Actor SDK API when a timer fires.

type TransactionalDelete

type TransactionalDelete struct {
	Key string `json:"key"`
}

TransactionalDelete defined a delete operation.

type TransactionalOperation

type TransactionalOperation struct {
	Operation OperationType `json:"operation"`
	Request   interface{}   `json:"request"`
}

TransactionalOperation is the request object for a state operation participating in a transaction.

type TransactionalRequest

type TransactionalRequest struct {
	Operations []TransactionalOperation `json:"operations"`
	ActorType  string
	ActorID    string
}

TransactionalRequest describes a set of stateful operations for a given actor that are performed in a transactional manner.

type TransactionalUpsert

type TransactionalUpsert struct {
	Key   string      `json:"key"`
	Value interface{} `json:"value"`
}

TransactionalUpsert defines a key/value pair for an upsert operation.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL