private void cancelScheduledTasks(NamedTask namedTask) { Map<Member, List<IScheduledFuture<Object>>> allScheduledFutures = scheduledExecutorService.getAllScheduledFutures(); allScheduledFutures.values().forEach( iScheduledFutures -> iScheduledFutures.forEach(objectIScheduledFuture -> { ScheduledTaskHandler handler = objectIScheduledFuture.getHandler(); if (handler.getTaskName().equals(namedTask.getName())) { log.info("Cancelling Task:" + objectIScheduledFuture.getHandler().getTaskName()); IScheduledFuture<Object> scheduledFuture = scheduledExecutorService.getScheduledFuture(objectIScheduledFuture.getHandler()); boolean cancel = scheduledFuture.cancel(false); log.info("Cancelled Task:" + cancel); scheduledFuture.dispose(); } } ) ); }
public static void main(String[] args) throws Exception { Hazelcast.newHazelcastInstance(); HazelcastInstance client = HazelcastClient.newHazelcastClient(); IScheduledExecutorService scheduler = client.getScheduledExecutorService("scheduler"); IScheduledFuture<String> future = scheduler.schedule(new EchoTask("My Task"), 5, TimeUnit.SECONDS); ScheduledTaskHandler handler = future.getHandler(); client.shutdown(); HazelcastInstance newClient = HazelcastClient.newHazelcastClient(); IScheduledExecutorService newScheduler = newClient.getScheduledExecutorService("scheduler"); IScheduledFuture<String> newFuture = newScheduler.getScheduledFuture(handler); Object result = newFuture.get(); System.out.println("Result: " + result); HazelcastClient.shutdownAll(); Hazelcast.shutdownAll(); } }