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 NewPgStore ¶
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.