in flow/engine.go [70:83]
func (e *Engine) Transition(ctx context.Context, param *WorkflowParam) error {
metrics.Inc(constants.MetricsEngine, constants.MetricsTransitionRequest)
r, err := e.workflowDAL.SelectTransitionTask(ctx, model.WorkflowTaskInstance{WorkflowID: param.ID,
WorkflowInstanceID: param.InstanceID, TaskInstanceID: param.TaskInstanceID,
Status: constants.TaskInstanceSleepStatus})
if err != nil {
return err
}
if r == nil {
return nil
}
r.Status = constants.TaskInstanceWaitStatus
return e.queue.Publish([]*model.WorkflowTaskInstance{r})
}