Java Hazelcast在没有执行器配置集的情况下并行运行聚合

Java Hazelcast在没有执行器配置集的情况下并行运行聚合,java,configuration,executorservice,hazelcast,Java,Configuration,Executorservice,Hazelcast,使用Hazelcast,我可以使用imap.aggregate运行聚合作业。。。方法这个隐藏的方法使用IExecutorService,并根据进行聚合的映射为它命名 当我尝试并行运行聚合作业时,会遇到大量的RejectedExecutionException 我找到了一种解决方法,在创建Hazelcast实例之前,专门为我试图聚合的映射添加ExecutorConfig,如下所示: Config cfg = new Config(); .... ExecutorConfig execCfg = n

使用Hazelcast,我可以使用imap.aggregate运行聚合作业。。。方法这个隐藏的方法使用IExecutorService,并根据进行聚合的映射为它命名

当我尝试并行运行聚合作业时,会遇到大量的RejectedExecutionException

我找到了一种解决方法,在创建Hazelcast实例之前,专门为我试图聚合的映射添加ExecutorConfig,如下所示:

Config cfg = new Config();
....
ExecutorConfig execCfg = new ExecutorConfig("<exec_name_used_by_aggregate>");
cfg.addExecutorConfig(execCfg);
....
Hazelcast.newHazelcastInstance(cfg);
....
现在,这种方法要求我知道Hazelcast实例启动和运行时需要的所有执行器的确切名称,因为如果我没有弄错的话,我无法在实例运行时更改其配置,对吗?这种方法还允许我指定线程池大小和队列大小,但在启动实例之前,我还必须按照ExecutionConfig设置它们。这需要我知道在启动/填充实例之前所需的最佳线程数

这就引出了一些问题:

有没有其他办法来解决我的问题? 我真的需要为我使用的每个ExecutorService显式添加ExecutorConfig吗? 实例运行后,是否可以不添加ExecutorConfig?
也许您可以在配置中使用通配符?看,我尝试过使用通配符,但它们不起作用。如果执行以下操作,通配符可能会起作用:new ExecutorConfigcom.package.*,但我没有尝试过。聚合方法将其执行器命名为:mapreduce::hz::hz::aggregation map-。我试着为零件使用通配符,但不起作用。