cron

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Jan 5, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ErrorHandlerGetter added in v0.1.0

type ErrorHandlerGetter interface {
	GetErrorHandler() func(error)
}

type LocationGetter added in v0.1.0

type LocationGetter interface {
	GetLocation() *time.Location
}

type LogLevel

type LogLevel int

LogLevel represents different logging levels

const (
	LogLevelSilent LogLevel = iota
	LogLevelError
	LogLevelInfo
	LogLevelDebug
)

type LogLevelGetter added in v0.1.0

type LogLevelGetter interface {
	GetLogLevel() LogLevel
}

type LogWriterGetter added in v0.1.0

type LogWriterGetter interface {
	GetLogWriter() io.Writer
}

type Logger

type Logger interface {
	Info(msg string, args ...any)
	Error(msg string, args ...any)
}

Logger interface shared across packages

type LoggerGetter added in v0.1.0

type LoggerGetter interface {
	GetLogger() Logger
}

type Option

type Option func(*Scheduler)

Option defines the functional option type for CronScheduler

func WithConfigurator added in v0.1.0

func WithConfigurator(i interface{}) Option

WithConfigurator sets multiple options from a single configuration struct that implements one or more Getter interfaces

func WithErrorHandler

func WithErrorHandler(handler func(error)) Option

WithErrorHandler sets a custom error handler for the scheduler

func WithErrorHandlerSetter added in v0.1.0

func WithErrorHandlerSetter(s ErrorHandlerGetter) Option

func WithLocation

func WithLocation(loc *time.Location) Option

WithLocation sets the timezone location for the scheduler

func WithLocationSetter added in v0.1.0

func WithLocationSetter(s LocationGetter) Option

func WithLogLevel

func WithLogLevel(level LogLevel) Option

WithLogLevel sets the logging level

func WithLogLevelSetter added in v0.1.0

func WithLogLevelSetter(s LogLevelGetter) Option

func WithLogWriter

func WithLogWriter(writer io.Writer) Option

WithLogWriter sets a custom writer for logging

func WithLogWriterSetter added in v0.1.0

func WithLogWriterSetter(s LogWriterGetter) Option

func WithLogger

func WithLogger(logger Logger) Option

WithLogger sets a custom logger for the scheduler

func WithLoggerSetter added in v0.1.0

func WithLoggerSetter(s LoggerGetter) Option

func WithParser

func WithParser(p Parser) Option

WithParser sets the type of cron expression parser to use

func WithParserSetter added in v0.1.0

func WithParserSetter(s ParserGetter) Option

type Parser

type Parser int

Parser represents a cron expression parser type

const (
	DefaultParser Parser = iota
	StandardParser
	SecondsParser
)

type ParserGetter added in v0.1.0

type ParserGetter interface {
	GetParser() Parser
}

type Scheduler

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

Scheduler wraps cron functionality

func NewScheduler

func NewScheduler(opts ...Option) *Scheduler

NewScheduler creates a new scheduler instance with the provided options TODO: Move to scheduler.NewCron()?

func (*Scheduler) AddHandler

func (s *Scheduler) AddHandler(opts command.HandlerConfig, handler any) (Subscription, error)

AddHandler registers a handler for scheduled execution It accepts any handler type that implements the Message interface and returns an entryID that can be used to remove the job later

  • handler: func()
  • handler: func() error
  • handler: command.Commander[T]
  • handler: command.CommandFunc[T]

func (*Scheduler) RemoveHandler

func (c *Scheduler) RemoveHandler(entryID int)

RemoveHandler removes a scheduled job by its entry ID

func (*Scheduler) SetLogger added in v0.3.0

func (cs *Scheduler) SetLogger(logger Logger)

func (*Scheduler) Start

func (c *Scheduler) Start(_ context.Context) error

Start begins executing scheduled jobs

func (*Scheduler) Stop

func (c *Scheduler) Stop(_ context.Context) error

Stop stops executing scheduled jobs

type Subscription

type Subscription interface {
	Unsubscribe()
}

func AddCommand

func AddCommand[T any](s *Scheduler, opts command.HandlerConfig, handler command.CommandFunc[T]) (Subscription, error)

AddCommand is a type-safe way to add command handlers

Jump to

Keyboard shortcuts

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