/** * 抖音关注:程序员三丙 * 知识星球:https://t.zsxq.com/j9b21 */ package sanbing.jcpp.infrastructure.cache; import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import java.io.Serializable; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.UUID; @Slf4j @RequiredArgsConstructor public class CaffeineCacheTransaction implements CacheTransaction { @Getter private final UUID id = UUID.randomUUID(); private final CaffeineTransactionalCache cache; @Getter private final List keys; @Getter @Setter private boolean failed; private final Map pendingPuts = new LinkedHashMap<>(); @Override public void put(K key, V value) { pendingPuts.put(key, value); } @Override public boolean commit() { return cache.commit(id, pendingPuts); } @Override public void rollback() { cache.rollback(id); } }