// Create a new task in the context of a TaskMaster func (tm *TaskMaster) NewTask( name, script string, tt TaskType, dbrps []DBRP, snapshotInterval time.Duration, ) (*Task, error) { t := &Task{ Name: name, Type: tt, DBRPs: dbrps, SnapshotInterval: snapshotInterval, } scope := tm.CreateTICKScope() var srcEdge pipeline.EdgeType switch tt { case StreamTask: srcEdge = pipeline.StreamEdge case BatchTask: srcEdge = pipeline.BatchEdge } p, err := pipeline.CreatePipeline(script, srcEdge, scope, tm.DeadmanService) if err != nil { return nil, err } t.Pipeline = p return t, nil }
func NewTask( name, script string, tt TaskType, dbrps []DBRP, snapshotInterval time.Duration, scope *tick.Scope, ) (*Task, error) { t := &Task{ Name: name, Type: tt, DBRPs: dbrps, SnapshotInterval: snapshotInterval, } var srcEdge pipeline.EdgeType switch tt { case StreamTask: srcEdge = pipeline.StreamEdge case BatchTask: srcEdge = pipeline.BatchEdge } p, err := pipeline.CreatePipeline(script, srcEdge, scope) if err != nil { return nil, err } t.Pipeline = p return t, nil }
func NewTask(name, script string, tt TaskType, dbrps []DBRP) (*Task, error) { t := &Task{ Name: name, Type: tt, DBRPs: dbrps, } var srcEdge pipeline.EdgeType switch tt { case StreamTask: srcEdge = pipeline.StreamEdge case BatchTask: srcEdge = pipeline.BatchEdge } scope := tick.NewScope() scope.Set("influxql", newInfluxQL()) scope.Set("time", func(d time.Duration) time.Duration { return d }) p, err := pipeline.CreatePipeline(script, srcEdge, scope) if err != nil { return nil, err } t.Pipeline = p return t, nil }
// Create a new task in the context of a TaskMaster func (tm *TaskMaster) NewTask( id, script string, tt TaskType, dbrps []DBRP, snapshotInterval time.Duration, vars map[string]tick.Var, ) (*Task, error) { t := &Task{ ID: id, Type: tt, DBRPs: dbrps, SnapshotInterval: snapshotInterval, } scope := tm.CreateTICKScope() var srcEdge pipeline.EdgeType switch tt { case StreamTask: srcEdge = pipeline.StreamEdge case BatchTask: srcEdge = pipeline.BatchEdge } p, err := pipeline.CreatePipeline(script, srcEdge, scope, tm.DeadmanService, vars) if err != nil { return nil, err } // A task will always have a stream or batch node. // If it doesn't have anything more then the task does nothing with the data. if p.Len() <= 1 { return nil, fmt.Errorf("task does nothing") } t.Pipeline = p return t, nil }