async

package
v1.1.14 Latest Latest
Warning

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

Go to latest
Published: Apr 2, 2024 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ErrDuplicatedHandlerName    utils.Error = "duplicated async handler name"
	ErrDuplicatedInstanceName   utils.Error = "duplicated async instance name"
	ErrDuplicatedQueueName      utils.Error = "duplicated async queue name"
	ErrConsumerDisabled         utils.Error = "async consumer is disabled"
	ErrUnsupportedSchedulerType utils.Error = "unsupported async type"
)

Variables

This section is empty.

Functions

func AppName

func AppName(name string) utils.OptionFunc[useOption]

func Args

func Args(args ...any) utils.OptionFunc[produceOption]

func Construct

func Construct(ctx context.Context, confs map[string]*Conf, opts ...utils.OptionExtender) func()

func Deadline

func Deadline(t time.Time) utils.OptionFunc[produceOption]

func Delay

func Delay(d time.Duration) utils.OptionFunc[produceOption]

func DelayAt

func DelayAt(t time.Time) utils.OptionFunc[produceOption]

func MaxRetry

func MaxRetry(n int) utils.OptionFunc[produceOption]

func Queue

func Queue(queue string) utils.OptionFunc[produceOption]

func Retention

func Retention(d time.Duration) utils.OptionFunc[produceOption]

func TaskID

func TaskID(id string) utils.OptionFunc[produceOption]

func Timeout

func Timeout(d time.Duration) utils.OptionFunc[produceOption]

Types

type Conf

type Conf struct {
	Type                 asyncType    `yaml:"type" json:"type" toml:"type"`
	Instance             string       `yaml:"instance" json:"instance" toml:"instance"`
	InstanceType         instanceType `yaml:"instance_type" json:"instance_type" toml:"instance_type"`
	Producer             bool         `yaml:"producer" json:"producer" toml:"producer" default:"true"`
	Consumer             bool         `yaml:"consumer" json:"consumer" toml:"consumer" default:"false"`
	ConsumerConcurrency  int          `yaml:"consumer_concurrency" json:"consumer_concurrency" toml:"consumer_concurrency"`
	MessageSerializeType string       `yaml:"message_serialize_type" json:"message_serialize_type" toml:"message_serialize_type" default:"gob"`
	MessageCompressType  string       `yaml:"message_compress_type" json:"message_compress_type" toml:"message_compress_type"`
	Queues               []*queueConf `yaml:"queues" json:"queues" toml:"queues"`
	StrictPriority       bool         `yaml:"strict_priority" json:"strict_priority" toml:"strict_priority"`

	EnableLogger bool   `yaml:"enable_logger" json:"enable_logger" toml:"enable_logger" default:"false"`
	LogLevel     string `yaml:"log_level" json:"log_level" toml:"log_level" default:"info"`
	Logger       string `yaml:"logger" json:"logger" toml:"logger" default:"github.com/wfusion/gofusion/log/customlogger.asyncLogger"`
	LogInstance  string `yaml:"log_instance" json:"log_instance" toml:"log_instance" default:"default"`
}

Conf async conf nolint: revive // struct tag too long issue

type Consumable

type Consumable interface {
	Use(mws ...routerMiddleware)
	Handle(pattern string, fn any, opts ...utils.OptionExtender)
	HandleFunc(fn any, opts ...utils.OptionExtender)
	Serve() error
	Start() error
	// contains filtered or unexported methods
}

func C

func C(name string, opts ...utils.OptionExtender) Consumable

type Producable

type Producable interface {
	Go(fn any, opts ...utils.OptionExtender) error
	Goc(ctx context.Context, fn any, opts ...utils.OptionExtender) error
	Send(ctx context.Context, taskName string, data any, opts ...utils.OptionExtender) (err error)
}

func P

func P(name string, opts ...utils.OptionExtender) Producable

type Task

type Task interface {
	ID() string
	Name() string
	Payload() []byte
	RawMessage() any
}

Jump to

Keyboard shortcuts

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