0

我们经常使用 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();

问题是:这是平常的时间吗?我们预计本地机器上的毫秒数。

4

1 回答 1

1

这是不正常的,除非您有两个需要太多时间的任务并且 Executor 线程已经被占用。因此,只有在有可用线程可以执行并且您会看到延迟时,该任务才会开始。

如果不是这种情况,你能想出我们可以运行和重现问题的代码吗?

福阿德

榛树

于 2011-04-20T10:22:10.020 回答