cron

package
v0.18.0 Latest Latest
Warning

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

Go to latest
Published: Mar 10, 2026 License: MIT Imports: 11 Imported by: 2

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 Handle added in v0.15.0

type Handle interface {
	Subscription
	Cancel()
	Status() ScheduleStatus
	Err() error
	Done() <-chan struct{}
	ID() int64
}

Handle extends Subscription with lifecycle controls.

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 ScheduleStatus added in v0.15.0

type ScheduleStatus string

ScheduleStatus reports a schedule handle state.

const (
	ScheduleStatusScheduled ScheduleStatus = "scheduled"
	ScheduleStatusRunning   ScheduleStatus = "running"
	ScheduleStatusIdle      ScheduleStatus = "idle"
	ScheduleStatusCompleted ScheduleStatus = "completed"
	ScheduleStatusCanceled  ScheduleStatus = "canceled"
	ScheduleStatusFailed    ScheduleStatus = "failed"
	ScheduleStatusStopped   ScheduleStatus = "stopped"
)

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.

func (*Scheduler) AddHandler

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

AddHandler registers a recurring handler for scheduled execution. Deprecated: prefer ScheduleCron/ScheduleAfter/ScheduleAt.

func (*Scheduler) RemoveHandler

func (s *Scheduler) RemoveHandler(entryID int)

RemoveHandler removes a scheduled job by entry ID.

func (*Scheduler) ScheduleAfter added in v0.15.0

func (s *Scheduler) ScheduleAfter(delay time.Duration, opts command.HandlerConfig, handler any) (Handle, error)

ScheduleAfter schedules one execution after delay.

func (*Scheduler) ScheduleAt added in v0.15.0

func (s *Scheduler) ScheduleAt(at time.Time, opts command.HandlerConfig, handler any) (Handle, error)

ScheduleAt schedules one execution at a specific time.

func (*Scheduler) ScheduleCron added in v0.15.0

func (s *Scheduler) ScheduleCron(opts command.HandlerConfig, handler any) (Handle, error)

ScheduleCron schedules a recurring handler by cron expression.

func (*Scheduler) SetLogger added in v0.3.0

func (cs *Scheduler) SetLogger(logger Logger)

func (*Scheduler) Start

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

Start begins executing scheduled cron jobs.

func (*Scheduler) Stop

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

Stop stops executing scheduled jobs and marks active handles as stopped.

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 compatibility wrapper around ScheduleCron.

Jump to

Keyboard shortcuts

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