v1.2.1

Scheduler API

Last updated

This page lists the core package API for creating, starting, and stopping a scheduler.

import "github.com/pardnchiu/go-scheduler/core"

New returns the unexported *cron; its exported methods are callable directly, and := infers the type when storing it.

Config

type Config struct {
    Location *time.Location
}
Field Description
Location Schedule timezone; time.Local when nil

New

func New(c Config) (*cron, error)

Creates a scheduler and initializes the min-heap, parser, dependency subsystem, and logger. The current implementation always returns a nil error.

Start

func (c *cron) Start()

Starts the dependency worker pool and event loop and computes next fire times for registered tasks. No-op when already running.

Stop

func (c *cron) Stop() context.Context

Stops the event loop, waits for dependency workers to exit, and returns a context cancelled after in-flight tasks without dependencies finish.

ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()

select {
case <-c.Stop().Done():
case <-ctx.Done():
    log.Println("shutdown timeout")
}

See Task API for registering tasks and Dependency API for prerequisite types.

中文