|
|
@@ -7,6 +7,8 @@ import (
|
|
|
"path"
|
|
|
"time"
|
|
|
|
|
|
+ "github.com/grafana/grafana/pkg/infra/serverlock"
|
|
|
+
|
|
|
"github.com/grafana/grafana/pkg/bus"
|
|
|
"github.com/grafana/grafana/pkg/log"
|
|
|
m "github.com/grafana/grafana/pkg/models"
|
|
|
@@ -15,8 +17,9 @@ import (
|
|
|
)
|
|
|
|
|
|
type CleanUpService struct {
|
|
|
- log log.Logger
|
|
|
- Cfg *setting.Cfg `inject:""`
|
|
|
+ log log.Logger
|
|
|
+ Cfg *setting.Cfg `inject:""`
|
|
|
+ ServerLockService *serverlock.ServerLockService `inject:""`
|
|
|
}
|
|
|
|
|
|
func init() {
|
|
|
@@ -38,7 +41,10 @@ func (srv *CleanUpService) Run(ctx context.Context) error {
|
|
|
srv.cleanUpTmpFiles()
|
|
|
srv.deleteExpiredSnapshots()
|
|
|
srv.deleteExpiredDashboardVersions()
|
|
|
- srv.deleteOldLoginAttempts()
|
|
|
+ srv.ServerLockService.OncePerServerGroup(ctx, "delete old login attempts", time.Minute*10, func() {
|
|
|
+ srv.deleteOldLoginAttempts()
|
|
|
+ })
|
|
|
+
|
|
|
case <-ctx.Done():
|
|
|
return ctx.Err()
|
|
|
}
|