34 lines
457 B
Go
34 lines
457 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
type JobError struct {
|
|
ShouldCancelJob bool
|
|
Msg string
|
|
Prev error
|
|
}
|
|
|
|
func (e *JobError) Error() string {
|
|
if e.Prev != nil {
|
|
return fmt.Sprintf("%s: %v", e.Msg, e.Prev)
|
|
}
|
|
|
|
return e.Msg
|
|
}
|
|
|
|
func jobErrorHandler(chErrorsIn <-chan JobError) error {
|
|
for err := range chErrorsIn {
|
|
if err.ShouldCancelJob {
|
|
return &err
|
|
}
|
|
|
|
log.Error(err)
|
|
}
|
|
|
|
return nil
|
|
}
|