Documentation
¶
Index ¶
- func ISONanoString(theTime time.Time) string
- func StringPointer(theString string) *string
- func TimeToString(theTime time.Time) string
- type CronTrigger
- type ExecuteOnceTrigger
- type Scheduler
- func (s *Scheduler) DeleteTaskDefinition(id *uuid.UUID) error
- func (s *Scheduler) DeleteTaskDefinitions(ids []*uuid.UUID) error
- func (s *Scheduler) DeleteTaskDefinitionsByMetadataQuery(metadataQuery interface{}) error
- func (s *Scheduler) GetTaskDefinitions(ids []*uuid.UUID) ([]TaskDefinition, error)
- func (s *Scheduler) ListTaskDefinitions(skip, limit int, metadataQuery interface{}) ([]TaskDefinition, error)
- func (s *Scheduler) Run()
- func (s *Scheduler) Stop()
- func (s *Scheduler) UpsertTaskDefinition(task TaskDefinition) error
- type StoreInterface
- type TaskDefinition
- func (t TaskDefinition) AsBytes() ([]byte, error)
- func (t TaskDefinition) GetFireTimeFrom(from time.Time) *time.Time
- func (t TaskDefinition) GetIdBytes() []byte
- func (t TaskDefinition) GetNextFireTime() *time.Time
- func (t TaskDefinition) GetTrigger() TriggerInterface
- func (t TaskDefinition) IdString() string
- type TaskInstance
- type TriggerInterface
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ISONanoString ¶
func StringPointer ¶
func TimeToString ¶
Types ¶
type CronTrigger ¶
type CronTrigger struct {
Expression string `json:"expression"`
// contains filtered or unexported fields
}
func NewCronTrigger ¶
func NewCronTrigger(cronExpression string) (*CronTrigger, error)
func (CronTrigger) GetFireTime ¶
func (t CronTrigger) GetFireTime(from time.Time) *time.Time
func (CronTrigger) IsRecurring ¶
func (t CronTrigger) IsRecurring() bool
type ExecuteOnceTrigger ¶
func NewExecuteOnceTrigger ¶
func NewExecuteOnceTrigger(fireAt time.Time) *ExecuteOnceTrigger
func (ExecuteOnceTrigger) GetFireTime ¶
func (t ExecuteOnceTrigger) GetFireTime(from time.Time) *time.Time
func (ExecuteOnceTrigger) IsRecurring ¶
func (t ExecuteOnceTrigger) IsRecurring() bool
type Scheduler ¶
type Scheduler struct {
ScheduleWindow *time.Duration
RunnerWindow *time.Duration
CleanupWindow *time.Duration
Handler func(taskInstance TaskInstance) error
// contains filtered or unexported fields
}
func NewScheduler ¶
func NewScheduler(scheduleWindow, runnerWindow, cleanupWindow time.Duration, handler func(taskInstance TaskInstance) error, store StoreInterface) (*Scheduler, error)
func (*Scheduler) DeleteTaskDefinition ¶
func (*Scheduler) DeleteTaskDefinitions ¶
func (*Scheduler) DeleteTaskDefinitionsByMetadataQuery ¶
func (*Scheduler) GetTaskDefinitions ¶
func (s *Scheduler) GetTaskDefinitions(ids []*uuid.UUID) ([]TaskDefinition, error)
func (*Scheduler) ListTaskDefinitions ¶
func (s *Scheduler) ListTaskDefinitions(skip, limit int, metadataQuery interface{}) ([]TaskDefinition, error)
func (*Scheduler) UpsertTaskDefinition ¶
func (s *Scheduler) UpsertTaskDefinition(task TaskDefinition) error
type StoreInterface ¶
type StoreInterface interface {
Initialize() error
UpsertTaskDefinition(definition TaskDefinition) error
ListTaskDefinitions(offset, limit int, metadataQuery interface{}) ([]TaskDefinition, error)
GetTaskDefinition(id *uuid.UUID) (TaskDefinition, error)
GetTaskDefinitions(ids []*uuid.UUID) ([]TaskDefinition, error)
DeleteTaskDefinition(id *uuid.UUID) error
DeleteTaskDefinitions(ids []*uuid.UUID) error
DeleteTaskDefinitionsByMetadata(metadataQuery interface{}) error
UpsertTaskInstance(taskInstance TaskInstance) error
GetTaskInstance(id *uuid.UUID) (TaskInstance, error)
ListTaskInstances(offset, limit int) ([]TaskInstance, error)
DeleteTaskInstance(id *uuid.UUID) error
GetTaskDefinitionsToSchedule(limit time.Time) ([]TaskDefinition, error)
GetTaskInstancesToRun(limit time.Time) ([]TaskInstance, error)
// markTaskInstanceComplete() should also mark the task definition complete, if the definition is non-recurring
MarkTaskInstanceComplete(instance TaskInstance) error
DeleteCompletedTaskInstances() error
DeleteCompletedTaskDefinitions() error
}
type TaskDefinition ¶
type TaskDefinition struct {
Id *uuid.UUID
Metadata interface{} `json:"metadata"`
ExpireAfter time.Duration `json:"expire_after"`
NextFireTime *time.Time `json:"next_fire_time"`
ExecuteOnceTrigger *ExecuteOnceTrigger `json:"execute_once_trigger"`
CronTrigger *CronTrigger `json:"cron_trigger"`
CompletedAt *time.Time `json:"completed_at"`
Recurring bool `json:"recurring"`
TaskInstances []TaskInstance `json:"task_instances" gorm:"foreignKey:Id"`
}
func TaskFromBytes ¶
func TaskFromBytes(bytes []byte) (TaskDefinition, error)
func (TaskDefinition) AsBytes ¶
func (t TaskDefinition) AsBytes() ([]byte, error)
func (TaskDefinition) GetFireTimeFrom ¶
func (t TaskDefinition) GetFireTimeFrom(from time.Time) *time.Time
func (TaskDefinition) GetIdBytes ¶
func (t TaskDefinition) GetIdBytes() []byte
func (TaskDefinition) GetNextFireTime ¶
func (t TaskDefinition) GetNextFireTime() *time.Time
func (TaskDefinition) GetTrigger ¶
func (t TaskDefinition) GetTrigger() TriggerInterface
func (TaskDefinition) IdString ¶
func (t TaskDefinition) IdString() string
type TaskInstance ¶
Source Files
¶
Click to show internal directories.
Click to hide internal directories.