@Override public <V> IScheduledFuture<V> schedule(Callable<V> command, long delay, TimeUnit unit) { checkNotNull(command, "Command is null"); checkNotNull(unit, "Unit is null"); String name = extractNameOrGenerateOne(command); int partitionId = getTaskOrKeyPartitionId(command, name); TaskDefinition<V> definition = new TaskDefinition<V>(TaskDefinition.Type.SINGLE_RUN, name, command, delay, unit); return scheduleOnPartition(name, definition, partitionId); }
@Override public <V> IScheduledFuture<V> schedule(Callable<V> command, long delay, TimeUnit unit) { checkNotNull(command, "Command is null"); checkNotNull(unit, "Unit is null"); String name = extractNameOrGenerateOne(command); int partitionId = getTaskOrKeyPartitionId(command, name); TaskDefinition<V> definition = new TaskDefinition<V>(TaskDefinition.Type.SINGLE_RUN, name, command, delay, unit); return scheduleOnPartition(name, definition, partitionId); }
@Override public <V> IScheduledFuture<V> scheduleOnKeyOwner(Callable<V> command, Object key, long delay, TimeUnit unit) { checkNotNull(command, "Command is null"); checkNotNull(key, "Key is null"); checkNotNull(unit, "Unit is null"); String name = extractNameOrGenerateOne(command); int partitionId = getKeyPartitionId(key); TaskDefinition definition = new TaskDefinition(TaskDefinition.Type.SINGLE_RUN, name, command, delay, unit); return scheduleOnPartition(name, definition, partitionId); }
@Override public IScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) { checkNotNull(command, "Command is null"); checkNotNull(unit, "Unit is null"); String name = extractNameOrGenerateOne(command); int partitionId = getTaskOrKeyPartitionId(command, name); Callable adapter = createScheduledRunnableAdapter(command); TaskDefinition definition = new TaskDefinition(TaskDefinition.Type.AT_FIXED_RATE, name, adapter, initialDelay, period, unit); return scheduleOnPartition(name, definition, partitionId); }
@Override public IScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) { checkNotNull(command, "Command is null"); checkNotNull(unit, "Unit is null"); String name = extractNameOrGenerateOne(command); int partitionId = getTaskOrKeyPartitionId(command, name); Callable adapter = createScheduledRunnableAdapter(command); TaskDefinition definition = new TaskDefinition(TaskDefinition.Type.AT_FIXED_RATE, name, adapter, initialDelay, period, unit); return scheduleOnPartition(name, definition, partitionId); }
@Override public <V> IScheduledFuture<V> scheduleOnKeyOwner(Callable<V> command, Object key, long delay, TimeUnit unit) { checkNotNull(command, "Command is null"); checkNotNull(key, "Key is null"); checkNotNull(unit, "Unit is null"); String name = extractNameOrGenerateOne(command); int partitionId = getKeyPartitionId(key); TaskDefinition definition = new TaskDefinition(TaskDefinition.Type.SINGLE_RUN, name, command, delay, unit); return scheduleOnPartition(name, definition, partitionId); }
@Override public IScheduledFuture<?> scheduleOnKeyOwnerAtFixedRate(Runnable command, Object key, long initialDelay, long period, TimeUnit unit) { checkNotNull(command, "Command is null"); checkNotNull(key, "Key is null"); checkNotNull(unit, "Unit is null"); String name = extractNameOrGenerateOne(command); int partitionId = getKeyPartitionId(key); Callable adapter = createScheduledRunnableAdapter(command); TaskDefinition definition = new TaskDefinition(TaskDefinition.Type.AT_FIXED_RATE, name, adapter, initialDelay, period, unit); return scheduleOnPartition(name, definition, partitionId); }
@Override public IScheduledFuture<?> scheduleOnKeyOwnerAtFixedRate(Runnable command, Object key, long initialDelay, long period, TimeUnit unit) { checkNotNull(command, "Command is null"); checkNotNull(key, "Key is null"); checkNotNull(unit, "Unit is null"); String name = extractNameOrGenerateOne(command); int partitionId = getKeyPartitionId(key); Callable adapter = createScheduledRunnableAdapter(command); TaskDefinition definition = new TaskDefinition(TaskDefinition.Type.AT_FIXED_RATE, name, adapter, initialDelay, period, unit); return scheduleOnPartition(name, definition, partitionId); }