public static void main(String[] args) throws Exception { HazelcastInstance instance = Hazelcast.newHazelcastInstance(); IScheduledExecutorService scheduler = instance.getScheduledExecutorService("scheduler"); scheduler.scheduleOnAllMembers(new EchoTask("Member Task"), 0, TimeUnit.SECONDS); scheduler.schedule(new EchoTask("Other Task"), 0, TimeUnit.SECONDS); int totalTasksCount = 0; for (Map.Entry<Member, List<IScheduledFuture<Object>>> entry : scheduler.getAllScheduledFutures().entrySet()) { totalTasksCount += entry.getValue().size(); } System.out.println("Total tasks count: " + totalTasksCount); Hazelcast.shutdownAll(); } }
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(); } } ) ); }