Skip to content

Cache timeout much sooner than expected #107

Open

Description

@pai911

I set the cache time to 24 hours

     internal struct UserTrackingCache {
        static let cacheName = "userTrackingCache"
        static let locationCacheTime: Double = 24 * 60 * 60 //24 hours
    }
        ///Save to cache
        do {
            let fullKey = "\(root)_\(key)"
            let cache = try Cache<NSData>(name: UserTrackingCache.cacheName)
            let cachedData = NSKeyedArchiver.archivedDataWithRootObject("Y")
            cache.setObject(cachedData, forKey: fullKey, expires: CacheExpiry.Seconds(UserTrackingCache.locationCacheTime))

        } catch _ {
            Log.error("Something went wrong with the cache = \(UserTrackingCache.cacheName)")
        }

I remove the expired cache when App starts in AppDelegate

        do {
            
            let cache = try Cache<NSData>(name: UserTrackingService.UserTrackingCache.cacheName)
            cache.removeExpiredObjects()
            
        } catch _ {
            Log.debug("Something went wrong with the cache")
        }

But I found the cache timeout sooner than I expected. Almost after a few hours, it expires

Does anyone encounter the same issue? or did I do something wrong ?

Activity

  1. pai911 commented on Apr 16, 2018

    @pai911
    Author

    Does AwesomeCache guarantee the cached items not purged before the expiry time

    I am thinking that the cache data might be purged by iOS...

  2. pai911 commented on Apr 18, 2018

    @pai911
    Author

    Answer my own question.

    It turns out the default .CachesDirectory can be purged by the OS sometimes.

    So I changed the cache dir to .DocumentDirectory, and then everything works fine.

    I really think this should be written in the document.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions