Open erdalbitik opened 7 years ago
I used ExpiringMap with variableExpiration.
ExpiringMap<Long, Transaction> expiringMap = ExpiringMap.builder() .expirationPolicy(ExpirationPolicy.CREATED) .variableExpiration() .asyncExpirationListener((key, transaction) -> removeTransaction((Transaction) transaction)) .build();
When an entry expires, removeTransaction method will be called. In this case, I put many entries with same duration (They will expire in the same time).
expiringMap.put(transactionTimestamp, transaction, ExpirationPolicy.CREATED, duration, TimeUnit.MILLISECONDS);
The problem is, removeTransaction method is called more than entries count in the expiringMap.
I used ExpiringMap with variableExpiration.
When an entry expires, removeTransaction method will be called. In this case, I put many entries with same duration (They will expire in the same time).
expiringMap.put(transactionTimestamp, transaction, ExpirationPolicy.CREATED, duration, TimeUnit.MILLISECONDS);
The problem is, removeTransaction method is called more than entries count in the expiringMap.