From 2eeec7cc776e0a4eb96b3bc071936632bdb37783 Mon Sep 17 00:00:00 2001 From: Satindar Dhillon Date: Thu, 19 May 2022 13:04:05 -0700 Subject: [PATCH] send debug messages to segment for bg task execution --- apple/OmnivoreKit/Sources/App/Services.swift | 9 ++++++--- .../Sources/Utils/EventTracking/EventTracker.swift | 6 ++++++ .../Sources/Utils/EventTracking/TrackableEvents.swift | 5 +++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/apple/OmnivoreKit/Sources/App/Services.swift b/apple/OmnivoreKit/Sources/App/Services.swift index 280eb6207..46f9dd7de 100644 --- a/apple/OmnivoreKit/Sources/App/Services.swift +++ b/apple/OmnivoreKit/Sources/App/Services.swift @@ -3,10 +3,11 @@ import Foundation import Models import OSLog import Services +import Utils public final class Services { static let fetchTaskID = "app.omnivore.fetchLinkedItems" - static let secondsToWaitBeforeNextBackgroundRefresh: TimeInterval = 3 // 1 hour + static let secondsToWaitBeforeNextBackgroundRefresh: TimeInterval = isDebug ? 0 : 3600 // 1 hour static let logger = Logger(subsystem: "app.omnivore", category: "services-class") public let authenticator: Authenticator @@ -24,6 +25,7 @@ extension Services { public static func registerBackgroundFetch() { BGTaskScheduler.shared.register(forTaskWithIdentifier: fetchTaskID, using: nil) { task in if let task = task as? BGAppRefreshTask { + EventTracker.trackForDebugging("executing app.omnivore.fetchLinkedItems bg task") logger.debug("in background task register closure") startBackgroundFetch(task: task) } @@ -48,12 +50,12 @@ extension Services { let services = Services() task.expirationHandler = { + EventTracker.trackForDebugging("background fetch expiration handler called") logger.debug("handling background fetch expiration") - // cancel tasks if still running - // maybe save/cancel pending changes to coredata context? } services.peformBackgroundFetch() + EventTracker.trackForDebugging("background fetch task completed successfully") task.setTaskCompleted(success: true) } @@ -61,6 +63,7 @@ extension Services { Services.logger.debug("starting background fetch") guard authenticator.hasValidAuthToken else { + EventTracker.trackForDebugging("background fetch failed: user does not habe a valid auth token") Services.logger.debug("background fetch failed: user does not habe a valid auth token") return } diff --git a/apple/OmnivoreKit/Sources/Utils/EventTracking/EventTracker.swift b/apple/OmnivoreKit/Sources/Utils/EventTracking/EventTracker.swift index fcc5f3159..fa63eb75b 100644 --- a/apple/OmnivoreKit/Sources/Utils/EventTracking/EventTracker.swift +++ b/apple/OmnivoreKit/Sources/Utils/EventTracking/EventTracker.swift @@ -7,6 +7,12 @@ public enum EventTracker { _ = segment?.version() } + public static func trackForDebugging(_ message: String) { + #if DEBUG + track(.debugMessage(message: message)) + #endif + } + public static func track(_ event: TrackableEvent) { segment?.track(name: event.name, properties: event.properties) } diff --git a/apple/OmnivoreKit/Sources/Utils/EventTracking/TrackableEvents.swift b/apple/OmnivoreKit/Sources/Utils/EventTracking/TrackableEvents.swift index b9f019961..3450f1fca 100644 --- a/apple/OmnivoreKit/Sources/Utils/EventTracking/TrackableEvents.swift +++ b/apple/OmnivoreKit/Sources/Utils/EventTracking/TrackableEvents.swift @@ -2,6 +2,7 @@ import Foundation public enum TrackableEvent { case linkRead(linkID: String, slug: String, originalArticleURL: String) + case debugMessage(message: String) } public extension TrackableEvent { @@ -9,6 +10,8 @@ public extension TrackableEvent { switch self { case .linkRead: return "link_read" + case .debugMessage: + return "debug_message" } } @@ -20,6 +23,8 @@ public extension TrackableEvent { "slug": slug, "url": originalArticleURL ] + case let .debugMessage(message: message): + return ["message": message] } } }