У меня появилось странное поведение обновленной функции. Вот моя конфигурация:Oracle Coherence Refresh-Ahead: обновление не работает, если кэш запрашивается раньше, чем период истечения срока действия.
<cache-config>
<defaults>
<serializer>pof</serializer>
<socket-provider system-property="tangosol.coherence.socketprovider"/>
</defaults>
<caching-scheme-mapping>
<cache-mapping>
<cache-name>sample</cache-name>
<scheme-name>extend-near-distributed</scheme-name>
</cache-mapping>
</caching-scheme-mapping>
<caching-schemes>
<near-scheme>
<scheme-name>extend-near-distributed</scheme-name>
<front-scheme>
<local-scheme>
<high-units>20000</high-units>
<expiry-delay>10s</expiry-delay>
</local-scheme>
</front-scheme>
<back-scheme>
<distributed-scheme>
<scheme-ref>distributed</scheme-ref>
</distributed-scheme>
</back-scheme>
<invalidation-strategy>all</invalidation-strategy>
</near-scheme>
<distributed-scheme>
<scheme-name>distributed</scheme-name>
<service-name>sample</service-name>
<thread-count>20</thread-count>
<backing-map-scheme>
<read-write-backing-map-scheme>
<internal-cache-scheme>
<local-scheme>
<expiry-delay>10s</expiry-delay>
</local-scheme>
</internal-cache-scheme>
<cachestore-scheme>
<class-scheme>
<class-name>
com.sample.CustomCacheStore
</class-name>
</class-scheme>
</cachestore-scheme>
<refresh-ahead-factor>0.5</refresh-ahead-factor>
</read-write-backing-map-scheme>
</backing-map-scheme>
<autostart>true</autostart>
</distributed-scheme>
</caching-schemes>
</cache-config>
и если я прошу мое обслуживание с периодом 6s (10s * 0.5) секунд все нормально. У меня нет отсрочки ответа (за исключением первого раза), но если я, например, изменяю период до 3 секунд, то я начинаю получать задержки каждые 10 секунд. Я понятия не имею, почему это происходит. Похоже, если я запрошу свое обслуживание до ожидаемого периода (от 5 до 10 секунд), асинхронная загрузка не произойдет, даже если после этого я его снова запрошу. Есть ли объяснение этого и как я могу обойти это поведение?
Thanks