我们正在大量使用Hazelcast分布式任务并意识到,有时只需启动任务就可以了。 2秒,甚至在任务本身执行之前。我们在一台机器上做到了这一点;也就是说,没有网络开销。执行的任务本身在其call()方法中只有一行代码(我们在开头和结尾放置了一个System.currentTimeMillis())在其构造函数调用中存储传递的参数“client” - 没有别的。
任务开始如下:
FutureTask<Member> task = new DistributedTask<Member>(new NotifyWaitingClientTask(client),
theId);
ExecutorService executorService = hazelcastInstance.getExecutorService();
executorService.execute(task);
...
task.get();
问题是:这是平时吗?我们在本地机器上预计相当毫秒。
答案 0 :(得分:1)
这是不正常的,除非你有两个很多任务花费太多时间并且Executor线程已被占用。因此,在有可执行的线程执行之前,任务才会启动,您将看到延迟。
如果不是这种情况,你能否提出我们可以运行的代码并重现问题。
福阿德
Hazelcast