@PostConstruct public void init() { lockManager = new LockManager<>(); visitors = Caffeine.newBuilder() .maximumSize(cacheSize) .removalListener(this::visitorRemoved) .build(repository::find); visitors.putAll(repository.findAll().stream().collect(toMap(Visitor::getIpAddress, Optional::of))); visitorExpirer = Executors.newSingleThreadScheduledExecutor(); long period = expiryCheckPeriod.getSeconds(); visitorExpirerFuture = visitorExpirer.scheduleAtFixedRate(this::expire, period, period, TimeUnit.SECONDS); }
@InvokeOnHeader(CaffeineConstants.ACTION_PUT_ALL) public void onPutAll(Message message) throws Exception { cache.putAll((Map)getValue(message, Map.class)); setResult(message, true, null, null); }