timework

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CronScheduleWindow

func CronScheduleWindow(schedule string, nominalAt time.Time) (time.Duration, error)

CronScheduleWindow returns the duration between a nominal cron fire and the next scheduled fire for the same schedule.

func CronTimeWorkID

func CronTimeWorkID(workflowIdentity, workstationName string, nominalAt time.Time) string

CronTimeWorkID returns a stable work item identity for the cron time tick.

func DeterministicCronJitter

func DeterministicCronJitter(workflowIdentity, workstationName string, nominalAt time.Time, maxJitter time.Duration) time.Duration

DeterministicCronJitter returns a stable jitter offset in the inclusive range [0, maxJitter].

func ParseCronExpiryWindow

func ParseCronExpiryWindow(cron *interfaces.CronConfig, scheduleWindow time.Duration) (time.Duration, error)

ParseCronExpiryWindow parses cron.expiry_window as a positive Go duration. When omitted, it defaults to the supplied schedule window.

func ParseCronJitter

func ParseCronJitter(cron *interfaces.CronConfig) (time.Duration, error)

ParseCronJitter parses cron.jitter as a non-negative Go duration and defaults to zero.

func ValidateCronSchedule

func ValidateCronSchedule(schedule string) error

ValidateCronSchedule validates a standard 5-field cron schedule through gocron.

Types

type CronTimeInput

type CronTimeInput struct {
	WorkflowIdentity string
	WorkstationName  string
	NominalAt        time.Time
	MaxJitter        time.Duration
	ExpiryWindow     time.Duration
}

CronTimeInput contains the stable inputs used to materialize one cron time tick.

type CronTimeMetadata

type CronTimeMetadata struct {
	CronWorkstation string        `json:"cron_workstation"`
	NominalAt       time.Time     `json:"nominal_at"`
	DueAt           time.Time     `json:"due_at"`
	ExpiresAt       time.Time     `json:"expires_at"`
	Jitter          time.Duration `json:"jitter"`
	Source          string        `json:"source"`
}

CronTimeMetadata is the canonical timing metadata attached to an internal time work item.

func BuildCronTimeMetadata

func BuildCronTimeMetadata(input CronTimeInput) (CronTimeMetadata, error)

BuildCronTimeMetadata creates deterministic timing metadata for one cron tick.

func CronTimeWorkRequest

func CronTimeWorkRequest(workflowIdentity string, ws interfaces.FactoryWorkstationConfig, nominalAt time.Time) (interfaces.WorkRequest, CronTimeMetadata, error)

CronTimeWorkRequest creates the canonical internal work request for one cron tick.

func (CronTimeMetadata) Payload

func (m CronTimeMetadata) Payload() ([]byte, error)

Payload returns a compact JSON representation of the time-work metadata.

func (CronTimeMetadata) Tags

func (m CronTimeMetadata) Tags() map[string]string

Tags returns the canonical time-work tags for this metadata.

type CronTiming

type CronTiming struct {
	MaxJitter    time.Duration
	ExpiryWindow time.Duration
}

CronTiming contains parsed timing values from a cron workstation config.

func ParseCronTiming

func ParseCronTiming(cron *interfaces.CronConfig, nominalAt time.Time) (CronTiming, error)

ParseCronTiming parses the jitter and expiry window for schedule-based cron workstations.

Jump to

Keyboard shortcuts

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