send debug messages to segment for bg task execution

This commit is contained in:
Satindar Dhillon
2022-05-19 13:04:05 -07:00
parent 64b6f95a15
commit 2eeec7cc77
3 changed files with 17 additions and 3 deletions

View File

@ -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
}

View File

@ -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)
}

View File

@ -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]
}
}
}