func()

in internal/dal/workflow.go [555:580]


func (w *workflowDALImpl) fillInstanceCount(workflows []model.Workflow) error {
	var handlers []func() error
	for idx := range workflows {
		idx := idx
		handlers = append(handlers, func() error {
			var instances []model.WorkflowInstance
			if err := workflowDB.Where("workflow_id = ?", workflows[idx].WorkflowID).
				Where("workflow_status != ?", constants.InvalidStatus).Find(&instances).Error; err != nil {
				return err
			}
			if len(instances) == 0 {
				return nil
			}
			workflows[idx].TotalInstances = len(instances)
			for _, instance := range instances {
				if instance.WorkflowStatus == constants.TaskInstanceFailStatus {
					workflows[idx].TotalFailedInstances++
				} else {
					workflows[idx].TotalRunningInstances++
				}
			}
			return nil
		})
	}
	return util.GoAndWait(handlers...)
}