From 4cc6d24404fe5b527f7bd99f1122a6d1d147ec07 Mon Sep 17 00:00:00 2001 From: Ryan Zhao Date: Mon, 12 Dec 2022 16:33:50 +1100 Subject: [PATCH] fix sync expiries jobs --- .../Jobs/Types/SyncExpiriesJob.swift | 31 +++++++++++-------- SessionUtilitiesKit/JobRunner/JobRunner.swift | 1 + 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/SessionMessagingKit/Jobs/Types/SyncExpiriesJob.swift b/SessionMessagingKit/Jobs/Types/SyncExpiriesJob.swift index d9a00ffd3..31dbe3029 100644 --- a/SessionMessagingKit/Jobs/Types/SyncExpiriesJob.swift +++ b/SessionMessagingKit/Jobs/Types/SyncExpiriesJob.swift @@ -27,7 +27,10 @@ public enum SyncExpiriesJob: JobExecutor { return } - guard DisappearingMessagesConfiguration.isNewConfigurationEnabled else { return } + guard DisappearingMessagesConfiguration.isNewConfigurationEnabled else { + success(job, false) + return + } var interactionIdsWithNoServerHashByExpiresInSeconds: [TimeInterval: [Int64]] = [:] @@ -76,21 +79,23 @@ public enum SyncExpiriesJob: JobExecutor { ).retainUntilComplete() } - guard !interactionIdsWithNoServerHashByExpiresInSeconds.isEmpty else { return } - - Storage.shared.writeAsync { db in - JobRunner.upsert( - db, - job: Job( - variant: .syncExpires, - details: SyncExpiriesJob.Details( - interactionIdsByExpiresInSeconds: interactionIdsWithNoServerHashByExpiresInSeconds, - startedAtMs: details.startedAtMs, - threadId: details.threadId + if !interactionIdsWithNoServerHashByExpiresInSeconds.isEmpty { + Storage.shared.writeAsync { db in + JobRunner.upsert( + db, + job: Job( + variant: .syncExpires, + details: SyncExpiriesJob.Details( + interactionIdsByExpiresInSeconds: interactionIdsWithNoServerHashByExpiresInSeconds, + startedAtMs: details.startedAtMs, + threadId: details.threadId + ) ) ) - ) + } } + + success(job, false) } } diff --git a/SessionUtilitiesKit/JobRunner/JobRunner.swift b/SessionUtilitiesKit/JobRunner/JobRunner.swift index 135b63fa1..10cf3baaf 100644 --- a/SessionUtilitiesKit/JobRunner/JobRunner.swift +++ b/SessionUtilitiesKit/JobRunner/JobRunner.swift @@ -91,6 +91,7 @@ public final class JobRunner { ) let syncExpiriesQueue: JobQueue = JobQueue( type: .syncExpiries, + executionType: .concurrent, // Allow as many jobs to run at once as supported by the device qos: .default, jobVariants: [ jobVariants.remove(.syncExpires)