send debug messages to segment for bg task execution
This commit is contained in:
@ -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
|
||||
}
|
||||
|
||||
@ -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)
|
||||
}
|
||||
|
||||
@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user