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.