As mentioned above the Purge Cache method is only used to clear the file stubs that are used as Cache Dependencies for items where the cache has expired in memory. This allows the other servers in a web farm to be synchronized. The expectation though from the schedule name might be that the cache is cleared. This is NOT the case - it is just purging orphaned stub files where the associated cache has expired in memory.
However, in 4.9 the coding in the File Based caching provider was refactored considerably so all the logic (for insertion) could be centralised in one of the overloads.
85 Public Overloads Overrides Sub Insert(ByVal CacheKey As String, ByVal objObject As Object, ByVal objDependency As CacheDependency, ByVal AbsoluteExpiration As Date, ByVal SlidingExpiration As System.TimeSpan, ByVal Priority As CacheItemPriority, ByVal OnRemoveCallback As CacheItemRemovedCallback, ByVal PersistAppRestart As Boolean)
86 ' initialize cache dependency
87 Dim d As Caching.CacheDependency = objDependency
88
89 ' if web farm is enabled in config file
90 If WebFarmEnabled Then
91 ' get hashed file name
92 Dim f(0) As String
93 f(0) = GetFileName(CacheKey)
94 ' create a cache file for item
95 CreateCacheFile(f(0), CacheKey)
96 ' create a cache dependency on the cache file
97 d = New Caching.CacheDependency(f, Nothing, objDependency)
98 End If
99
100 ' insert the item into memory using the appropriate overload
101 If d Is Nothing Then
102 objCache.Insert(CacheKey, objObject)
103 ElseIf AbsoluteExpiration = DateTime.MinValue Then
104 objCache.Insert(CacheKey, objObject, d)
105 ElseIf Priority = CacheItemPriority.Default Then
106 objCache.Insert(CacheKey, objObject, d, AbsoluteExpiration, SlidingExpiration)
107 Else
108 objCache.Insert(CacheKey, objObject, d, AbsoluteExpiration, SlidingExpiration, Priority, OnRemoveCallback)
109 End If
110 End Sub
Now the problem is in Lines 101-108. If there is no dependency (either a passed in dependency, OR a file stub dependency added because we are in a Web Farm then d id Nothing, so the line 102 is executed and the object is inserted into the cache regardless of the Absolute or Sliding expirations.
So it seems to me that cached objects will be inserted into the web cache with no expiry.