diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 986b8e08..626bab84 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -117,21 +117,21 @@ jobs: OPTIONAL_DEPS: ${{ matrix.optional_deps }} - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 - name: Set up builder - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 id: builder - name: Login to Docker Hub - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} if: ${{ github.event_name != 'pull_request' }} - name: Login to GitHub Container Registry - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} @@ -139,7 +139,7 @@ jobs: if: ${{ github.event_name != 'pull_request' }} - name: Build and push - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3 with: context: . builder: ${{ steps.builder.outputs.name }} diff --git a/dataprovider/bolt.go b/dataprovider/bolt.go index f15b27a2..b756a927 100644 --- a/dataprovider/bolt.go +++ b/dataprovider/bolt.go @@ -9,7 +9,6 @@ import ( "errors" "fmt" "path/filepath" - "sync/atomic" "time" bolt "go.etcd.io/bbolt" @@ -25,7 +24,6 @@ const ( ) var ( - lastUserUpdate int64 usersBucket = []byte("users") groupsBucket = []byte("groups") foldersBucket = []byte("folders") @@ -2381,14 +2379,6 @@ func (p *BoltProvider) getFoldersBucket(tx *bolt.Tx) (*bolt.Bucket, error) { return bucket, err } -func setLastUserUpdate() { - atomic.StoreInt64(&lastUserUpdate, util.GetTimeAsMsSinceEpoch(time.Now())) -} - -func getLastUserUpdate() int64 { - return atomic.LoadInt64(&lastUserUpdate) -} - func getBoltDatabaseVersion(dbHandle *bolt.DB) (schemaVersion, error) { var dbVersion schemaVersion err := dbHandle.View(func(tx *bolt.Tx) error { diff --git a/dataprovider/scheduler.go b/dataprovider/scheduler.go index 7b51def9..d87b2791 100644 --- a/dataprovider/scheduler.go +++ b/dataprovider/scheduler.go @@ -2,6 +2,7 @@ package dataprovider import ( "fmt" + "sync/atomic" "time" "github.com/robfig/cron/v3" @@ -14,6 +15,9 @@ import ( var ( scheduler *cron.Cron lastCachesUpdate int64 + // used for bolt and memory providers, so we avoid iterating all users + // to find recently modified ones + lastUserUpdate int64 ) func stopScheduler() { @@ -82,3 +86,11 @@ func checkCacheUpdates() { lastCachesUpdate = checkTime providerLog(logger.LevelDebug, "end caches check, new update time %v", util.GetTimeFromMsecSinceEpoch(lastCachesUpdate)) } + +func setLastUserUpdate() { + atomic.StoreInt64(&lastUserUpdate, util.GetTimeAsMsSinceEpoch(time.Now())) +} + +func getLastUserUpdate() int64 { + return atomic.LoadInt64(&lastUserUpdate) +}