actors

package
v1.2.2 Latest Latest
Warning

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

Go to latest
Published: Jun 17, 2021 License: MIT Imports: 30 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrActorDisposed is the error when runtime tries to hold the lock of the disposed actor.
	ErrActorDisposed error = errors.New("actor is already disposed")
)
View Source
var (
	ErrMaxStackDepthExceeded error = 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 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
	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(address, id string, namespace string, skipTLS, recreateIfExists, enableSSL bool) (*grpc.ClientConn, error),
	config Config,
	certChain *dapr_credentials.CertChain,
	tracingSpec configuration.TracingSpec,
	features []configuration.FeatureSpec) 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
}

Config is the actor runtime configuration

func NewConfig

func NewConfig(hostAddress, appID string, placementAddresses []string, hostedActors []string, port int,
	actorScanInterval, actorIdleTimeout, ongoingCallTimeout string, drainRebalancedActors bool, namespace string,
	reentrancy app_config.ReentrancyConfig) Config

NewConfig returns the actor runtime configuration

type CreateReminderRequest

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

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"`
	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 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"`
}

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"`
}

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

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