Chore: Extract server lock error so it can be used with errors.As (#58899)

chore: extract server lock Error so it can be used with error.As
This commit is contained in:
Jo 2022-11-17 14:02:17 +00:00 committed by GitHub
parent 5ea077c440
commit 7e9d94cfda
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 2 deletions

View File

@ -0,0 +1,9 @@
package serverlock
type ServerLockExistsError struct {
actionName string
}
func (e *ServerLockExistsError) Error() string {
return "there is already a lock for this actionName: " + e.actionName
}

View File

@ -2,7 +2,6 @@ package serverlock
import (
"context"
"errors"
"time"
"go.opentelemetry.io/otel/attribute"
@ -185,7 +184,7 @@ func (sl *ServerLockService) acquireForRelease(ctx context.Context, actionName s
if len(lockRows) > 0 {
result := lockRows[0]
if sl.isLockWithinInterval(result, maxInterval) {
return errors.New("there is already a lock for this actionName: " + actionName)
return &ServerLockExistsError{actionName: actionName}
} else {
// lock has timeouted, so we update the timestamp
result.LastExecution = time.Now().Unix()