quartz

package module
v0.0.0-...-ec57ae2 Latest Latest
Warning

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

Go to latest
Published: Dec 28, 2015 License: MIT Imports: 10 Imported by: 0

README

quartz.go

Golang Native Clone of Quartz Scheduler

Documentation

Index

Constants

View Source
const (
	DEFAULT_GROUP = "DEFAULT"
)
View Source
const (
	REPEAT_INDEFINITELY = -1
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Cloneable

type Cloneable interface {
	Clone() interface{}
}

type CompareFunc

type CompareFunc func(lhs, rhs interface{}) int

type DirtyFlagMap

type DirtyFlagMap interface {
	Map

	Dirty() bool

	ClearDirtyFlag()
}

func NewDirtyFlagMap

func NewDirtyFlagMap() DirtyFlagMap

type Job

type Job interface {
	// Called by the Scheduler when a Trigger fires that is associated with the Job.
	Execute(context JobExecutionContext)
}

The interface to be implemented by classes which represent a 'job' to be performed.

type JobBuilder

type JobBuilder struct {
	Key         JobKey
	Description string
	DataMap     JobDataMap
}

JobBuilder is used to instantiate JobDetails.

func (*JobBuilder) Build

func (b *JobBuilder) Build() JobDetail

func (*JobBuilder) SetJobDataMap

func (b *JobBuilder) SetJobDataMap(dataMap JobDataMap) *JobBuilder

func (*JobBuilder) UsingJobData

func (b *JobBuilder) UsingJobData(key string, value interface{}) *JobBuilder

func (*JobBuilder) UsingJobDataMap

func (b *JobBuilder) UsingJobDataMap(dataMap JobDataMap) *JobBuilder

func (*JobBuilder) WithDescription

func (b *JobBuilder) WithDescription(desc string) *JobBuilder

func (*JobBuilder) WithGroupIdentity

func (b *JobBuilder) WithGroupIdentity(name, group string) *JobBuilder

func (*JobBuilder) WithIdentity

func (b *JobBuilder) WithIdentity(name string) *JobBuilder

func (*JobBuilder) WithJobKey

func (b *JobBuilder) WithJobKey(key JobKey) *JobBuilder

type JobDataMap

type JobDataMap interface {
	DirtyFlagMap
}

func NewJobDataMap

func NewJobDataMap() JobDataMap

type JobDetail

type JobDetail interface {
	Cloneable

	Key() JobKey

	Description() string

	Durable() bool

	JobDataMap() JobDataMap

	JobBuilder() *JobBuilder
}

Conveys the detail properties of a given Job instance. JobDetails are to be created/defined with JobBuilder.

type JobExecutionContext

type JobExecutionContext interface {
	Scheduler() Scheduler

	Trigger() Trigger

	JobInstance() Job

	JobDetail() JobDetail

	FireTime() time.Time

	ScheduledFireTime() time.Time

	PreviousFireTime() time.Time

	NextFireTime() time.Time

	JobRunTime() time.Duration

	Result() interface{}

	SetResult(interface{})

	MergedJobDataMap() JobDataMap

	Put(key string, value interface{})

	Get(key string) interface{}
}

A context bundle containing handles to various environment information, that is given to a JobDetail instance as it is executed, and to a Trigger instance after the execution completes.

type JobFactory

type JobFactory interface {
	NewJob(scheduler Scheduler) (Job, error)
}

type JobKey

type JobKey []byte

func NewGroupJobKey

func NewGroupJobKey(name, group string) JobKey

func NewJobKey

func NewJobKey(name string) JobKey

func NewUniqueKey

func NewUniqueKey(group string) JobKey

func (JobKey) Equals

func (key JobKey) Equals(other JobKey) bool

func (JobKey) Group

func (key JobKey) Group() string

func (JobKey) Name

func (key JobKey) Name() string

func (JobKey) String

func (key JobKey) String() string

type JobMap

type JobMap map[string]*jobWrapper

type JobStore

type JobStore interface {
	SchedulerStarted() error

	SchedulerPaused()

	SchedulerResumed()

	Shutdown()

	SupportsPersistence() bool

	Clustered() bool

	StoreJobAndTrigger(job JobDetail, trigger OperableTrigger) error

	StoreJobsAndTriggers(triggersAndJobs map[JobDetail][]Trigger, replace bool) error

	StoreJob(job JobDetail, replaceExisting bool) error

	StoreTrigger(trigger OperableTrigger, replaceExisting bool) error

	RemoveJob(key JobKey) (bool, error)

	RemoveJobs(keys []JobKey) (bool, error)

	RetrieveJob(key JobKey) (JobDetail, error)

	RemoveTrigger(key TriggerKey) (bool, error)

	RemoveTriggers(keys []TriggerKey) (bool, error)

	ReplaceTrigger(key TriggerKey, trigger OperableTrigger) error

	RetrieveTrigger(key TriggerKey) (OperableTrigger, error)

	CheckJobExists(key JobKey) bool

	CheckTriggerExists(key TriggerKey) bool

	NumberOfJobs() int

	NumberOfTriggers() int

	TriggersForJob(key JobKey) []OperableTrigger

	PauseJob(key JobKey) error

	PauseTrigger(key TriggerKey) error

	ResumeJob(key JobKey) error

	ResumeTrigger(key TriggerKey) error

	PauseAll() error

	ResumeAll() error
}

The interface to be implemented by classes that want to provide a Job and Trigger storage mechanism for the QuartzScheduler's use.

type Map

type Map interface {
	Cloneable

	Empty() bool

	Len() int

	Keys() []string

	Values() []interface{}

	Entries() []MapEntry

	Contains(key string) bool

	Get(key string) interface{}

	Put(key string, value interface{})

	PutAll(m Map)

	Remove(key string) interface{}
}

type MapEntry

type MapEntry interface {
	Key() string

	Value() interface{}
}

type MutableTrigger

type MutableTrigger interface {
	Trigger

	SetKey(key TriggerKey)

	SetJobKey(key JobKey)

	SetDescription(desc string)

	SetPriority(priority int)

	SetStartTime(startTime time.Time) error

	SetEndTime(endTime time.Time) error

	SetJobDataMap(dataMap JobDataMap)
}

type OperableTrigger

type OperableTrigger interface {
	Cloneable
	MutableTrigger

	SetNextFireTime(nextFireTime time.Time)

	SetPreviousFireTime(previousFireTime time.Time)
}

type QuartzScheduler

type QuartzScheduler struct {
}

type RAMJobStore

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

func NewRAMJobStore

func NewRAMJobStore() *RAMJobStore

func (*RAMJobStore) CheckJobExists

func (s *RAMJobStore) CheckJobExists(key JobKey) bool

func (*RAMJobStore) CheckTriggerExists

func (s *RAMJobStore) CheckTriggerExists(key TriggerKey) bool

func (*RAMJobStore) Clustered

func (s *RAMJobStore) Clustered() bool

func (*RAMJobStore) RemoveJob

func (s *RAMJobStore) RemoveJob(key JobKey) (bool, error)

func (*RAMJobStore) RemoveJobs

func (s *RAMJobStore) RemoveJobs(keys []JobKey) (bool, error)

func (*RAMJobStore) RemoveTrigger

func (s *RAMJobStore) RemoveTrigger(key TriggerKey) bool

func (*RAMJobStore) RemoveTriggers

func (s *RAMJobStore) RemoveTriggers(keys []TriggerKey) (bool, error)

func (*RAMJobStore) RetrieveJob

func (s *RAMJobStore) RetrieveJob(key JobKey) JobDetail

func (*RAMJobStore) RetrieveTrigger

func (s *RAMJobStore) RetrieveTrigger(key TriggerKey) OperableTrigger

func (*RAMJobStore) SchedulerPaused

func (s *RAMJobStore) SchedulerPaused()

func (*RAMJobStore) SchedulerResumed

func (s *RAMJobStore) SchedulerResumed()

func (*RAMJobStore) SchedulerStarted

func (s *RAMJobStore) SchedulerStarted() error

func (*RAMJobStore) StoreJob

func (s *RAMJobStore) StoreJob(jobDetail JobDetail, replaceExisting bool) error

func (*RAMJobStore) StoreJobAndTrigger

func (s *RAMJobStore) StoreJobAndTrigger(job JobDetail, trigger OperableTrigger) error

func (*RAMJobStore) StoreJobsAndTriggers

func (s *RAMJobStore) StoreJobsAndTriggers(triggersAndJobs map[JobDetail][]Trigger, replace bool) error

func (*RAMJobStore) StoreTrigger

func (s *RAMJobStore) StoreTrigger(trigger OperableTrigger, replaceExisting bool) error

func (*RAMJobStore) SupportsPersistence

func (s *RAMJobStore) SupportsPersistence() bool

func (*RAMJobStore) TriggersForJob

func (s *RAMJobStore) TriggersForJob(key JobKey) (triggers []OperableTrigger)

type ScheduleBuilder

type ScheduleBuilder interface {
	Build() MutableTrigger
}

type Scheduler

type Scheduler interface {
	Name() string

	Context() SchedulerContext

	Start() error

	StartDelayed(time.Duration) error

	Started() bool

	Standby() error

	InStandbyMode() bool

	Shutdown() error

	IsShutdown() bool

	MetaData() SchedulerMetaData

	CurrentlyExecutingJob() ([]JobExecutionContext, error)

	SetJobFactory(factory JobFactory)

	ScheduleJob(jobDetail JobDetail, trigger Trigger) (time.Time, error)

	Schedule(trigger Trigger) (time.Time, error)

	ScheduleJobs(triggersAndJobs map[JobDetail][]Trigger, replace bool) (time.Time, error)

	UnscheduleJob(key TriggerKey) (bool, error)

	UnscheduleJobs(keys []TriggerKey) (bool, error)

	RescheduleJob(key TriggerKey, trigger Trigger) (time.Time, error)

	AddJob(jobDetail JobDetail, replace bool) error

	DeleteJob(key JobKey) (bool, error)

	DeleteJobs(keys []JobKey) (bool, error)

	TriggerJob(key JobKey) error

	PauseJob(key JobKey) error

	PauseTrigger(key TriggerKey) error

	ResumeJob(key JobKey) error

	ResumeTrigger(key TriggerKey) error

	PauseAll() error

	ResumeAll() error

	GetTriggersOfJob(key JobKey) []Trigger

	GetJobDetail(key JobKey) JobDetail

	GetTrigger(key TriggerKey) Trigger

	CheckJobExists(key JobKey) bool

	CheckTriggerExists(key TriggerKey) bool

	Clear() error
}

type SchedulerContext

type SchedulerContext interface {
	DirtyFlagMap
}

type SchedulerMetaData

type SchedulerMetaData interface {
}

type Set

type Set interface {
	Empty() bool

	Len() int

	Keys() []interface{}

	Contains(item interface{}) bool

	Add(item interface{})

	Remove(item interface{}) bool
}

func NewHashSet

func NewHashSet() Set

func NewTreeSet

func NewTreeSet(compare CompareFunc) Set

type SimpleScheduleBuilder

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

func (*SimpleScheduleBuilder) Build

type Sortable

type Sortable interface {
	sort.Interface
}

type StdScheduler

type StdScheduler struct {
}

type StringKeys

type StringKeys []interface{}

func (StringKeys) Len

func (keys StringKeys) Len() int

func (StringKeys) Less

func (keys StringKeys) Less(i, j int) bool

func (StringKeys) Swap

func (keys StringKeys) Swap(i, j int)

type Trigger

type Trigger interface {
	Key() TriggerKey

	JobKey() JobKey

	Description() string

	JobDataMap() JobDataMap

	Priority() int

	MayFireAgain() bool

	StartTime() time.Time

	EndTime() time.Time

	NextFireTime() time.Time

	PreviousFireTime() time.Time

	FireTimeAfter(afterTime time.Time) time.Time

	FinalFireTime() time.Time

	TriggerBuilder() *TriggerBuilder

	ScheduleBuilder() ScheduleBuilder
}

The base interface with properties common to all Triggers - use TriggerBuilder to instantiate an actual Trigger.

type TriggerBuilder

type TriggerBuilder struct {
	Key                TriggerKey
	Description        string
	StartTime, EndTime time.Time
	Priority           int
	JobKey             JobKey
	DataMap            JobDataMap
	ScheduleBuilder    ScheduleBuilder
}

TriggerBuilder is used to instantiate Triggers.

func (*TriggerBuilder) Build

func (b *TriggerBuilder) Build() Trigger

func (*TriggerBuilder) EndAt

func (b *TriggerBuilder) EndAt(endTime time.Time) *TriggerBuilder

func (*TriggerBuilder) ForGroupJob

func (b *TriggerBuilder) ForGroupJob(name, group string) *TriggerBuilder

func (*TriggerBuilder) ForJob

func (b *TriggerBuilder) ForJob(name string) *TriggerBuilder

func (*TriggerBuilder) ForJobDetail

func (b *TriggerBuilder) ForJobDetail(jobDetail JobDetail) *TriggerBuilder

func (*TriggerBuilder) ForJobKey

func (b *TriggerBuilder) ForJobKey(jobKey JobKey) *TriggerBuilder

func (*TriggerBuilder) SetJobDataMap

func (b *TriggerBuilder) SetJobDataMap(dataMap JobDataMap) *TriggerBuilder

func (*TriggerBuilder) StartAt

func (b *TriggerBuilder) StartAt(startTime time.Time) *TriggerBuilder

func (*TriggerBuilder) StartNow

func (b *TriggerBuilder) StartNow() *TriggerBuilder

func (*TriggerBuilder) UsingJobData

func (b *TriggerBuilder) UsingJobData(key string, value interface{}) *TriggerBuilder

func (*TriggerBuilder) UsingJobDataMap

func (b *TriggerBuilder) UsingJobDataMap(dataMap JobDataMap) *TriggerBuilder

func (*TriggerBuilder) WithDescription

func (b *TriggerBuilder) WithDescription(desc string) *TriggerBuilder

func (*TriggerBuilder) WithGroupIdentity

func (b *TriggerBuilder) WithGroupIdentity(name, group string) *TriggerBuilder

func (*TriggerBuilder) WithIdentity

func (b *TriggerBuilder) WithIdentity(name string) *TriggerBuilder

func (*TriggerBuilder) WithPriority

func (b *TriggerBuilder) WithPriority(priority int) *TriggerBuilder

func (*TriggerBuilder) WithSchedule

func (b *TriggerBuilder) WithSchedule(scheduleBuilder ScheduleBuilder) *TriggerBuilder

func (*TriggerBuilder) WithTriggerKey

func (b *TriggerBuilder) WithTriggerKey(key TriggerKey) *TriggerBuilder

type TriggerKey

type TriggerKey []byte

func NewGroupTriggerKey

func NewGroupTriggerKey(name, group string) TriggerKey

func NewTriggerKey

func NewTriggerKey(name string) TriggerKey

func NewUniqueTriggerKey

func NewUniqueTriggerKey(group string) TriggerKey

func (TriggerKey) Equals

func (key TriggerKey) Equals(other TriggerKey) bool

func (TriggerKey) Group

func (key TriggerKey) Group() string

func (TriggerKey) Name

func (key TriggerKey) Name() string

func (TriggerKey) String

func (key TriggerKey) String() string

type TriggerMap

type TriggerMap map[string]*triggerWrapper

type TriggerState

type TriggerState int
const (
	STATE_WAITING TriggerState = iota
	STATE_ACQUIRED
	STATE_EXECUTING
	STATE_COMPLETE
	STATE_PAUSED
	STATE_BLOCKED
	STATE_PAUSED_BLOCKED
	STATE_ERROR
)

Jump to

Keyboard shortcuts

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