ExecuteBatch 批量执行工具
(ctx context.Context, requests []*ExecuteRequest)
| 99 | |
| 100 | // ExecuteBatch 批量执行工具 |
| 101 | func (e *Executor) ExecuteBatch(ctx context.Context, requests []*ExecuteRequest) []*ExecuteResult { |
| 102 | results := make([]*ExecuteResult, len(requests)) |
| 103 | var wg sync.WaitGroup |
| 104 | |
| 105 | for i, req := range requests { |
| 106 | wg.Add(1) |
| 107 | go func(idx int, r *ExecuteRequest) { |
| 108 | defer wg.Done() |
| 109 | results[idx] = e.Execute(ctx, r) |
| 110 | }(i, req) |
| 111 | } |
| 112 | |
| 113 | wg.Wait() |
| 114 | return results |
| 115 | } |
| 116 | |
| 117 | // Wait 等待所有执行完成 |
| 118 | func (e *Executor) Wait() { |