☕️ Есть такая JVM библиотека Caffeine, отличная. Можно строить с ней кеши где у ключей есть срок годности
И вот я писал тесты с OAuth токенами. И подумал — вот возьму библиотеку готовую для токенов, не буду делать на ConcurrentHashMap-е
Взял. Сделал тест с Gatling. Уперся в ❎ DeadLock, когда одновременно ключи добавлялись, читались, и выполнялся внутренний CleanUp для Caffeine
Починил пока написав обертку над Caffeine-вой Map-ой, которая ставит 🔒 RetainLoc, что на чтение, что на запись. Сделал однопоточный кеш. Вроде все хорошо теперь. Может немного потерял в скорости, но отказываться от удобной таблицы уже не хотелось
Post #177
487
- ❤ 1