Hazelcast并行运行聚合,没有执行程序配置集

时间:2015-08-31 17:58:38

标签: java configuration executorservice hazelcast

使用Hazelcast,我可以使用imap.aggregate(...)方法运行聚合作业。引擎盖下的这个方法使用IExecutorService,并根据你进行聚合的地图为它命名。

当我尝试并行运行聚合作业时,我得到了大量的RejectedExecutionExceptions。

我找到了一种解决方法,通过在我创建我的Hazelcast实例之前专门为我要尝试聚合的地图添加ExecutorConfig来工作:

Config cfg = new Config();
....
ExecutorConfig execCfg = new ExecutorConfig("<exec_name_used_by_aggregate>");
cfg.addExecutorConfig(execCfg);
....
Hazelcast.newHazelcastInstance(cfg);
....

现在,这种方法要求我知道在Hazelcast实例启动和运行时我将需要的所有执行程序的确切名称,因为如果我没有弄错,我无法在运行时更改实例的配置,对吗?这种方法还允许我指定线程池大小和队列大小,但我还必须在启动实例之前按ExecutionConfig设置它们。这需要我知道在实例启动/填充之前所需的最佳线程数。

所以,这给我带来了一些问题:

  1. 有没有其他方法可以解决我遇到的问题?
  2. 我真的需要为我使用的每个ExecutorService显式添加一个ExecutorConfig吗?
  3. 实例运行后,我不能添加ExecutorConfig吗?

0 个答案:

没有答案