code: func (m TaskManager) LaunchTask(c context.Context, ctl task.Controller) error {
  	cfg := ctl.Task().(*messages.NoopTask)
  
  	sleepFor := time.Duration(cfg.SleepMs) * time.Millisecond
  	if sleepFor == 0 {
  		sleepFor = 20 * time.Second
  	}
  	ctl.DebugLog("Running noop task for %s", sleepFor)
  	clock.Sleep(c, sleepFor)
  
  	for i := int64(0); i < cfg.TriggersCount; i++ {
  		ctl.EmitTrigger(c, &internal.Trigger{
  			Id:      fmt.Sprintf("noop:%d:%d", ctl.InvocationID(), i),
  			Payload: &internal.Trigger_Noop{Noop: &api.NoopTrigger{}},
  		})
  	}
  
  	ctl.State().Status = task.StatusSucceeded
  	return nil
  }
docs: // LaunchTask is part of Manager interface.