FINERACT-1678
- ThreadPoolTaskExecutor task executor is added to COB workers which allows concurrent processing of chunks.
This commit is contained in:
committed by
Arnold Gálovics
parent
fc9525f966
commit
900d0c2827
+5
-4
@@ -36,7 +36,7 @@ public class FineractPartitionJobConfigValidationCondition implements Condition
|
||||
"fineract.partitioned-job", FineractProperties.FineractPartitionedJob.class);
|
||||
if (partitionedJobProperties != null) {
|
||||
List<FineractProperties.PartitionedJobProperty> invalidConfigs = partitionedJobProperties.getPartitionedJobProperties().stream()
|
||||
.filter(isAnyConfigBelowOne().or(FineractPartitionJobConfigValidationCondition::isPartitionRatioInvalid)).toList();
|
||||
.filter(isAnyConfigBelowOne().or(FineractPartitionJobConfigValidationCondition::invalidMaxPoolSize)).toList();
|
||||
if (!invalidConfigs.isEmpty()) {
|
||||
for (FineractProperties.PartitionedJobProperty invalidConfig : invalidConfigs) {
|
||||
log.error(
|
||||
@@ -52,10 +52,11 @@ public class FineractPartitionJobConfigValidationCondition implements Condition
|
||||
|
||||
private static Predicate<FineractProperties.PartitionedJobProperty> isAnyConfigBelowOne() {
|
||||
return partitionedJobProperty -> !(partitionedJobProperty.getPartitionSize() > 0 && partitionedJobProperty.getChunkSize() > 0
|
||||
&& partitionedJobProperty.getThreadCount() > 0);
|
||||
&& partitionedJobProperty.getThreadPoolCorePoolSize() > 0 && partitionedJobProperty.getThreadPoolMaxPoolSize() > 0
|
||||
&& partitionedJobProperty.getThreadPoolQueueCapacity() > 0);
|
||||
}
|
||||
|
||||
private static boolean isPartitionRatioInvalid(FineractProperties.PartitionedJobProperty partitionedJobProperty) {
|
||||
return partitionedJobProperty.getPartitionSize() < partitionedJobProperty.getThreadCount() * partitionedJobProperty.getChunkSize();
|
||||
private static boolean invalidMaxPoolSize(FineractProperties.PartitionedJobProperty partitionedJobProperty) {
|
||||
return partitionedJobProperty.getThreadPoolMaxPoolSize() < partitionedJobProperty.getThreadPoolCorePoolSize();
|
||||
}
|
||||
}
|
||||
|
||||
+4
-1
@@ -155,8 +155,11 @@ public class FineractProperties {
|
||||
private String jobName;
|
||||
private Integer chunkSize;
|
||||
private Integer partitionSize;
|
||||
private Integer threadCount;
|
||||
private Integer threadPoolCorePoolSize;
|
||||
private Integer threadPoolMaxPoolSize;
|
||||
private Integer threadPoolQueueCapacity;
|
||||
private Integer retryLimit;
|
||||
|
||||
}
|
||||
|
||||
@Getter
|
||||
|
||||
Reference in New Issue
Block a user