package org.redisson.executor; import org.redisson.api.RedissonClient; import org.redisson.api.annotation.RInject; public class ScheduledLongRepeatableTask implements Runnable { @RInject private RedissonClient redisson; private String counterName; private String objectName; public ScheduledLongRepeatableTask() { } public ScheduledLongRepeatableTask(String counterName, String objectName) { super(); this.counterName = counterName; this.objectName = objectName; } @Override public void run() { if (redisson.getAtomicLong(counterName).incrementAndGet() == 3) { for (int i = 0; i < Long.MAX_VALUE; i++) { if (Thread.currentThread().isInterrupted()) { System.out.println("interrupted " + i); redisson.getBucket(objectName).set(i); return; } } } } }