(clientResolver ClientResolver, updateNotify func(), maxRunning int)
| 76 | } |
| 77 | |
| 78 | func NewTaskManagerWithMaxRunning(clientResolver ClientResolver, updateNotify func(), maxRunning int) *TaskManager { |
| 79 | if maxRunning < 1 { |
| 80 | maxRunning = defaultMaxRunningTasks |
| 81 | } |
| 82 | |
| 83 | return &TaskManager{ |
| 84 | queue: make(map[string][]*Task), |
| 85 | activeTasks: make(map[string]*Task), |
| 86 | clientResolver: clientResolver, |
| 87 | updateNotify: updateNotify, |
| 88 | maxRunning: maxRunning, |
| 89 | stopChan: make(chan struct{}), |
| 90 | } |
| 91 | } |
| 92 | |
| 93 | func taskKey(node string, vmid int) string { |
| 94 | return fmt.Sprintf("%s/%d", node, vmid) |
no outgoing calls