(connName string)
| 482 | } |
| 483 | |
| 484 | func onConnectionUp(connName string) { |
| 485 | log.Printf("[conn:%s] connection became connected, reconnecting jobs", connName) |
| 486 | ctx, cancelFn := context.WithTimeout(context.Background(), 5*time.Second) |
| 487 | defer cancelFn() |
| 488 | |
| 489 | allJobs, err := wstore.DBGetAllObjsByType[*waveobj.Job](ctx, waveobj.OType_Job) |
| 490 | if err != nil { |
| 491 | log.Printf("[conn:%s] failed to get jobs for reconnection: %v", connName, err) |
| 492 | return |
| 493 | } |
| 494 | |
| 495 | var jobsToReconnect []*waveobj.Job |
| 496 | for _, job := range allJobs { |
| 497 | if job.Connection == connName && isJobManagerRunning(job) { |
| 498 | jobsToReconnect = append(jobsToReconnect, job) |
| 499 | } |
| 500 | } |
| 501 | |
| 502 | log.Printf("[conn:%s] found %d jobs to reconnect", connName, len(jobsToReconnect)) |
| 503 | |
| 504 | successCount := 0 |
| 505 | for _, job := range jobsToReconnect { |
| 506 | err = ReconnectJob(ctx, job.OID, nil) |
| 507 | if err != nil { |
| 508 | log.Printf("[job:%s] error reconnecting: %v", job.OID, err) |
| 509 | } else { |
| 510 | successCount++ |
| 511 | } |
| 512 | } |
| 513 | |
| 514 | log.Printf("[conn:%s] finished reconnecting jobs: %d/%d successful", connName, successCount, len(jobsToReconnect)) |
| 515 | } |
| 516 | |
| 517 | func onConnectionDown(connName string) { |
| 518 | log.Printf("[conn:%s] connection became disconnected", connName) |
no test coverage detected