ExecutionCallback
allows you to asynchronously get notified when the execution is done.
public class Fibonacci<Long> implements Callable<Long>, Serializable { int input = 0; public Fibonacci() { } public Fibonacci(int input) { this.input = input; } public Long call() { return calculate (input); } private long calculate (int n) { if (n <= 1) return n; else return calculate(n-1) + calculate(n-2); } }
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.ExecutionCallback;
import com.hazelcast.core.IExecutorService;
import java.util.concurrent.Future;
import com.hazelcast.config.Config;
Config cfg = new Config();
HazelcastInstance hz = Hazelcast.newHazelcastInstance(cfg);
IExecutorService es = hz.getExecutorService();
Callable<Long> task = new Fibonacci(10);
es.submit(task, new ExecutionCallback<Long> () {
public void onResponse(Long response) {
System.out.println("Fibonacci calculation result = " + response);
}
public void onFailure(Throwable t) {
t.printStackTrace();
}
});