Documentation
¶
Index ¶
- Variables
- func RegisterWorksMap(worksMap map[string]WorkDetail) error
- type Controller
- type CronState
- type CronTrigger
- type DateState
- type DateTrigger
- type IStore
- type ITrigger
- type IntervalState
- type IntervalTrigger
- type MemoryStore
- func (m *MemoryStore) AddTask(task *Task) error
- func (m *MemoryStore) DelTask(task *Task) error
- func (m *MemoryStore) GetAllTasks() []*Task
- func (m *MemoryStore) GetDueTasks(now time.Time) []*Task
- func (m *MemoryStore) GetNextRunTime() time.Time
- func (m *MemoryStore) GetTaskByName(name string) (*Task, error)
- func (m *MemoryStore) UpdateTask(task *Task) error
- type PgStore
- func (p *PgStore) AddTask(task *Task) error
- func (p *PgStore) DelTask(task *Task) error
- func (p *PgStore) GetAllTasks() []*Task
- func (p *PgStore) GetDueTasks(now time.Time) []*Task
- func (p *PgStore) GetNextRunTime() time.Time
- func (p *PgStore) GetTaskByName(name string) (*Task, error)
- func (p *PgStore) UpdateTask(task *Task) error
- type Scheduler
- func (s *Scheduler) AddTask(task *Task) error
- func (s *Scheduler) AddTaskFromTasksMap(name, taskMapKey string, trigger ITrigger, args ...interface{}) error
- func (s *Scheduler) Close()
- func (s *Scheduler) DelTask(task *Task) error
- func (s *Scheduler) GetAllTasks() []*Task
- func (s *Scheduler) GetTaskByName(name string) (*Task, error)
- func (s *Scheduler) Start()
- func (s *Scheduler) UpdateTask(task *Task) error
- func (s *Scheduler) Wake()
- type Task
- type TriggerState
- type WorkDetail
Constants ¶
This section is empty.
Variables ¶
View Source
var EmptyDateTime time.Time
View Source
var WorksMap = map[string]WorkDetail{}
Functions ¶
func RegisterWorksMap ¶
func RegisterWorksMap(worksMap map[string]WorkDetail) error
Types ¶
type Controller ¶
func NewController ¶
func NewController() *Controller
func (*Controller) Reset ¶
func (c *Controller) Reset(deadlineTime time.Time)
type CronTrigger ¶
* Cron *
func NewCronTrigger ¶
func NewCronTrigger(cronCmd string) (*CronTrigger, error)
func (*CronTrigger) GetTriggerState ¶
func (c *CronTrigger) GetTriggerState() TriggerState
func (*CronTrigger) NextFireTime ¶
func (c *CronTrigger) NextFireTime(previous, now time.Time) time.Time
type DateTrigger ¶
* Date *
func NewDateTrigger ¶
func NewDateTrigger(runDateTime time.Time) (*DateTrigger, error)
func (*DateTrigger) GetTriggerState ¶
func (d *DateTrigger) GetTriggerState() TriggerState
func (*DateTrigger) NextFireTime ¶
func (d *DateTrigger) NextFireTime(previous, now time.Time) time.Time
type ITrigger ¶
type ITrigger interface {
NextFireTime(previous, now time.Time) time.Time
GetTriggerState() TriggerState
}
func FromTriggerState ¶
func FromTriggerState(state TriggerState) (ITrigger, error)
type IntervalState ¶
type IntervalTrigger ¶
* Interval *
func NewIntervalTrigger ¶
func (*IntervalTrigger) GetTriggerState ¶
func (i *IntervalTrigger) GetTriggerState() TriggerState
func (*IntervalTrigger) NextFireTime ¶
func (i *IntervalTrigger) NextFireTime(previous, now time.Time) time.Time
type MemoryStore ¶
* MemoryStore *
func NewMemoryStore ¶
func NewMemoryStore() *MemoryStore
func (*MemoryStore) AddTask ¶
func (m *MemoryStore) AddTask(task *Task) error
func (*MemoryStore) DelTask ¶
func (m *MemoryStore) DelTask(task *Task) error
func (*MemoryStore) GetAllTasks ¶
func (m *MemoryStore) GetAllTasks() []*Task
func (*MemoryStore) GetDueTasks ¶
func (m *MemoryStore) GetDueTasks(now time.Time) []*Task
func (*MemoryStore) GetNextRunTime ¶
func (m *MemoryStore) GetNextRunTime() time.Time
func (*MemoryStore) GetTaskByName ¶
func (m *MemoryStore) GetTaskByName(name string) (*Task, error)
func (*MemoryStore) UpdateTask ¶
func (m *MemoryStore) UpdateTask(task *Task) error
type PgStore ¶
* PostGreSQL *
func (*PgStore) GetAllTasks ¶
func (*PgStore) GetNextRunTime ¶
func (*PgStore) UpdateTask ¶
type Scheduler ¶
type Scheduler struct {
StoresMap map[string]IStore
Logger *logrus.Entry
Controller *Controller
CloseCancel context.CancelFunc
}
func NewScheduler ¶
func (*Scheduler) AddTaskFromTasksMap ¶
func (*Scheduler) GetAllTasks ¶
func (*Scheduler) UpdateTask ¶
type Task ¶
type Task struct {
Id int64 `json:"id" pg:",pk"`
Name string `json:"name" pg:",use_zero"`
WorkKey string `json:"work_key" pg:",use_zero"`
Func func(args ...interface{}) `json:"func" pg:"-"`
Args []interface{} `json:"args" pg:",use_zero"`
Scheduler *Scheduler `json:"scheduler" pg:"-"`
Trigger ITrigger `json:"trigger" pg:"-"`
TriggerState TriggerState `json:"trigger_state" pg:",use_zero"`
PreviousRunTime time.Time `json:"previous_run_time" pg:",use_zero"`
NextRunTime time.Time `json:"next_run_time" pg:",use_zero"`
Logger *logrus.Entry `json:"logger" pg:"-"`
Running bool `json:"running" pg:",use_zero"`
Coalesce bool `json:"coalesce" pg:",use_zero"`
Count int64 `json:"count" pg:",use_zero"`
}
func FromPgTask ¶
func FromPgTask(pgTask *Task, trigger ITrigger, workDetail WorkDetail) *Task
func (*Task) UpdateTrigger ¶
type TriggerState ¶
type TriggerState struct {
Name string `json:"name"`
Cron CronState `json:"cron"`
Date DateState `json:"date"`
Interval IntervalState `json:"interval"`
}
type WorkDetail ¶
type WorkDetail struct {
Func func(args ...interface{})
Args []interface{}
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.