When Is the Cache Refreshed?
Published: May 2010
Each subscription, query, explicit identity, association has an ExpireAfter interval which determines when the next refresh from the external application is due. When they are due, the sync process schedules the refresh; however, there is no way to predict when the sync process will actually refresh it. This depends on a lot of factors such as pending operations in the queue, the availability of the external application, etc. Pending operations always get the highest priority so the sync process always tries to execute any pending operations first before refreshing the cache, even if it is in the middle of a refresh. Once the pending operations are all taken care of, it then tries to refresh the cache by executing the query, explicit identity, or association that has expired for the longest time until all the expired subscriptions are refreshed.