@Override public int compare(ScheduledEntry o1, ScheduledEntry o2) { if (o1.getScheduleId() > o2.getScheduleId()) { return 1; } else if (o1.getScheduleId() < o2.getScheduleId()) { return -1; } return 0; } };
@Override public boolean scheduleTtlEntry(long delayMillis, Object key, Object value) { return ttlEvictionScheduler.schedule(delayMillis, key, value); }
@Override public ScheduledEntry<Object, Object> cancelTtlEntry(Object key) { return ttlEvictionScheduler.cancel(key); }
private boolean scheduleEntry(long delayMillis, K key, V value) { int delaySeconds = ceilToSecond(delayMillis); Integer newSecond = findRelativeSecond(delayMillis); synchronized (mutex) { long id = uniqueIdGenerator.incrementAndGet(); Object compositeKey = new CompositeKey(key, id); secondsOfKeys.put(compositeKey, newSecond); ScheduledEntry<K, V> scheduledEntry = new ScheduledEntry<K, V>(key, value, delayMillis, delaySeconds, id); doSchedule(compositeKey, scheduledEntry, newSecond); } return true; }
@Override public boolean schedule(long delayMillis, K key, V value) { if (scheduleType.equals(ScheduleType.POSTPONE)) { return schedulePostponeEntry(delayMillis, key, value); } else if (scheduleType.equals(ScheduleType.FOR_EACH)) { return scheduleEntry(delayMillis, key, value); } throw new RuntimeException("Undefined schedule type."); }
private void resumeMigrationEventually() { delayedResumeMigrationTrigger.executeWithDelay(); }
private boolean scheduleEntry(long delayMillis, K key, V value) { int delaySeconds = ceilToSecond(delayMillis); Integer newSecond = findRelativeSecond(delayMillis); synchronized (mutex) { long id = uniqueIdGenerator.incrementAndGet(); Object compositeKey = new CompositeKey(key, id); secondsOfKeys.put(compositeKey, newSecond); ScheduledEntry<K, V> scheduledEntry = new ScheduledEntry<K, V>(key, value, delayMillis, delaySeconds, id); doSchedule(compositeKey, scheduledEntry, newSecond); } return true; }
@Override public boolean schedule(long delayMillis, K key, V value) { if (scheduleType.equals(ScheduleType.POSTPONE)) { return schedulePostponeEntry(delayMillis, key, value); } else if (scheduleType.equals(ScheduleType.FOR_EACH)) { return scheduleEntry(delayMillis, key, value); } throw new RuntimeException("Undefined schedule type."); }
public void scheduleEviction(String name, long delay) { queueEvictionScheduler.schedule(delay, name, null); }
@Override public ScheduledEntry<Object, Object> cancelTtlEntry(Object key) { return ttlEvictionScheduler.cancel(key); }
@Override public int compare(ScheduledEntry o1, ScheduledEntry o2) { if (o1.getScheduleId() > o2.getScheduleId()) { return 1; } else if (o1.getScheduleId() < o2.getScheduleId()) { return -1; } return 0; } };
private void resumeMigrationEventually() { delayedResumeMigrationTrigger.executeWithDelay(); }
@Override public boolean scheduleTtlEntry(long delayMillis, Object key, Object value) { return ttlEvictionScheduler.schedule(delayMillis, key, value); }
void cancelEviction(Data key) { entryTaskScheduler.cancel(key); }
void scheduleEviction(Data key, int version, long leaseTime) { entryTaskScheduler.schedule(leaseTime, key, version); }
public void cancelEviction(String name) { queueEvictionScheduler.cancel(name); }
void scheduleEviction(Data key, int version, long leaseTime) { entryTaskScheduler.schedule(leaseTime, key, version); }
void cancelEviction(Data key) { entryTaskScheduler.cancel(key); }
public void scheduleEviction(String name, long delay) { queueEvictionScheduler.schedule(delay, name, null); }
public void cancelEviction(String name) { queueEvictionScheduler.cancel(name); }